-
理解函数属性——prototype
prototype
是每一个函数天生自带的属性,prototype
属性又指向一个prototype
对象,prototype
属性和prototype
对象是两个不同的货色prototype(原型对象)
对象外部有一个constructor
属性,constructor
属性指向一个constructor
对象,constructor
对象就是这个函数自身
-
理解函数属性——__proto__
__proto__
属性是每一个对象天生自带的属性,指向所属函数的原型对象,实例化对象也是对象,所以也带有__proto__
属性
function Person(name,age){ this.name = name this.age = age this.sayHi = function (){console.log('hello') } let p1 = new Person('Jack',18) let p1 = new Person('Rose',20)
-
理解对象拜访机制
- 当拜访一个对象成员的时候,如果对象自身有该成员,则间接返回后果,进行查问;如果自身没有,则主动去
__proto__
上拜访查找,如果还没有,持续去__proto__
上拜访查找,直到顶级对象的__proto__
都没有就返回 undefined - 每一个函数天生自带一个属性
prototype
属性,是一个对象 - 每一个对象天生自带一个属性
__proto__
属性,用于指向所属构造函数的prototype
- 当一个对象没有精确的构造函数来实例化时,那么默认看作是内置构造函数 Object 的实例对象
- 当拜访一个对象成员的时候,如果对象自身有该成员,则间接返回后果,进行查问;如果自身没有,则主动去
-
原型
- 原型是每个函数天生自带的一个叫做
prototype
属性,prototype
属性指向寒素的prototype
原型对象 prototype
中的constructor
属性 (结构器) 指向以后原型对象所属的构造函数
- 原型是每个函数天生自带的一个叫做
-
原型链
- 从任何对象登程,依照
__proto__
开始往上查找,最终都能查找到 Object.prototype,那么由__proto__
串联起来的对象链状构造叫做原型链
数组.__proto__ === Array.prototype Array.prototype.__proto__ === Object.prototype 数组.__proto__.__proto__ === Object.prototype
- 从任何对象登程,依照