add:whistle拦截https请求

This commit is contained in:
qianguyihao
2018-04-26 22:36:33 +08:00
parent aff9908fe1
commit d1a24fe404
9 changed files with 63 additions and 188 deletions

View File

@@ -44,17 +44,12 @@
当new之后this会先变成一个空对象然后通过`this.name = name`来赋值。
### 构造函数的扩展
20180306_1633.png
![](http://img.smyhvae.com/20180306_1633.png)
上图中发现数组、对象、函数也有构造函数它们的构造函数是Array、Object、funtion。实际开发中都推荐前面的书写方式。
## 原型规则
原型规则是学习原型链的基础。原型规则有五条,下面来讲解。
@@ -65,43 +60,38 @@
举例:
20180306_1651.png
![](http://img.smyhvae.com/20180306_1651.png)
### 规则2
所有的**引用类型**(数组、对象、函数),都有一个`_proto_`属性,属性值是一个**普通的对象**。`_proto_`的含义是隐式原型。
20180306_1656.png
![](http://img.smyhvae.com/20180306_1656.png)
其实规则2是规则1的特例只不过js语法帮我们自动加了 规则2。
### 规则三
所有的**函数**(不包括数组、对象),都有一个`protype`属性,属性值是一个**普通的对象**。`protype`的含义是**显式原型**。(实例没有这个属性)
20180306_1659.png
![](http://img.smyhvae.com/20180306_1659.png)
### 规则四
所有的**引用类型**(数组、对象、函数),`_proto_`属性指向它的**构造函数**的`protype`值。
20180306_1701.png
![](http://img.smyhvae.com/20180306_1701.png)
总结:以上四条,要先理解清楚,然后再来看下面的第五条。
### 规则五
当试图获取一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去它的`_proto_`中寻找(即它的构造函数的`protype`)。
`举例代码1`
```javascript
//创建方法
function Foo(name) {
@@ -125,7 +115,6 @@
上方代码中,虽然 alertName 不是 fn 自身的属性,但是会从它的构造函数的`protype`里面找。
**扩展:**遍历循环对象自身的属性
我们知道,`for ... in`循环可以遍历对象。针对上面的那个fn对象它自身有两个属性`name``printName`,另外从原型中找到了第三个属性`alertName`。现在如果我们对fn进行遍历能遍历到两个属性还是三个属性呢
@@ -142,7 +131,6 @@
```
## 原型链
还是拿上面的``举例代码1``举例,如果此时在最后面加一行代码:
@@ -161,8 +149,6 @@
对象 instanceof 构造函数
```
`instanceof`的作用:用于判断**引用类型**属于哪个**构造函数**。
例1判断一个变量是否为数组 `变量 instanceof Array`
@@ -189,13 +175,12 @@
原型链如下:(重要)
20180306_1853.png
![](http://img.smyhvae.com/20180306_1853.png)
注意Object这个构造方法的显式原型是null这是一个特例。
## 常见题目
- 如何准确判断一个变量时数组类型
@@ -206,7 +191,6 @@
- zepto(或其他框架)源码中如何使用原型链
下面分别讲解。
### 题目一:如何准确判断一个变量时数组类型
@@ -222,24 +206,20 @@
上方代码表明,只能通过 instanceof 来判断是否为数组。而 typeof 的打印结果是 object。
### 题目二:写一个原型链继承的例子
来看个基础的代码:
20180306_1931.png
![](http://img.smyhvae.com/20180306_1931.png)
上面这个例子是基础,但是,在回答面试官的问题时,不要写上面的例子。要写成下面这个例子:(更贴近实战)
**举例:**写一个封装DOM查询的例子
> 这个例子有点像 jQuery 操作DOM节点。
表示这个例子,略难。
### 题目三:描述 new 一个对象的过程
1创建一个新对象
@@ -251,19 +231,7 @@
4返回this
参考链接:
- [原型、原型链、继承模式](https://my.oschina.net/u/2600761/blog/1524617)
```javascript
```