update
This commit is contained in:
@@ -30,8 +30,8 @@
|
||||
### 方式一:字面量
|
||||
|
||||
```javascript
|
||||
var obj11 = {name: 'smyh'};
|
||||
var obj12 = new Object(name: `smyh`); //内置对象(内置的构造函数)
|
||||
var obj11 = {name: 'qianguyihao'};
|
||||
var obj12 = new Object(name: 'qianguyihao'); //内置对象(内置的构造函数)
|
||||
```
|
||||
|
||||
上面的两种写法,效果是一样的。因为,第一种写法,`obj11`会指向`Object`。
|
||||
@@ -87,7 +87,7 @@ PS:任何一个函数,如果在前面加了new,那就是构造函数。
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
var fn = new Foo('smyhvae');
|
||||
var foo = new Foo('smyhvae');
|
||||
```
|
||||
|
||||
上面的代码中,`Foo.prototype.constructor === Foo`的结果是`true`:
|
||||
@@ -95,7 +95,7 @@ PS:任何一个函数,如果在前面加了new,那就是构造函数。
|
||||

|
||||
|
||||
|
||||
- 4、实例的`__proto__`指向原型。也就是说,`Foo.__proto__ === M.prototype`。
|
||||
- 4、实例的`__proto__`指向原型。也就是说,`foo.__proto__ === Foo.prototype`。
|
||||
|
||||
声明:所有的**引用类型**(数组、对象、函数)都有`__proto__`这个属性。
|
||||
|
||||
@@ -137,7 +137,7 @@ Object是原型链的顶端。
|
||||
|
||||
比如说:
|
||||
|
||||
- `foo instance of Foo`的结果为true,因为`foo.__proto__ === M.prototype`为true。
|
||||
- `foo instance of Foo`的结果为true,因为`foo.__proto__ === Foo.prototype`为true。
|
||||
|
||||
- **`foo instance of Objecet`的结果也为true**,因为`Foo.prototype.__proto__ === Object.prototype`为true。
|
||||
|
||||
@@ -150,7 +150,7 @@ Object是原型链的顶端。
|
||||
|
||||
分析:这就要用到原型的`constructor`属性了。
|
||||
|
||||
- `foo.__proto__.constructor === M`的结果为true,但是 `foo.__proto__.constructor === Object`的结果为false。
|
||||
- `foo.__proto__.constructor === Foo`的结果为true,但是 `foo.__proto__.constructor === Object`的结果为false。
|
||||
|
||||
所以,用 consturctor判断就比用 instanceof判断,更为严谨。
|
||||
|
||||
@@ -176,7 +176,6 @@ Object是原型链的顶端。
|
||||
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user