原型
- 谁调用,this就指向谁,当实例对象有该属性时,不会去原型上查找
- 创建对象的两种方法:字面量、new Object()一般不用后面的
- 二者创建出来的对象没有差异
Object.create()
- var 实例 = Object.create(对象/null)
- 将对象或null作为实例的原型
- new构造函数的时候做了什么
- 实例化对象
- 调用构造函数的初始化属性和方法
- 指定实例对象的原型
- 将null作为实例的原型,原型中将不包含任何属性!
- 因此,不是所有对象都继承Object.prototype
- 无法查找到toString方法(没有__proto__)
- 手动增加的__proto__和自身的不一样,没有可以向上查找的原型链
var obj = Object.create(null)
obj.num = 1;
var obj1 = {
count: 2
}
obj.__proto__ = obj1;
console.log(obj.count)