prototype:函数的一个属性,它指向该函数的原型对象
proto:对象的一个属性,它指向该对象的原型
constructor:原型对象的一个属性,它指向其关联的构造函数
原型链:在读取对象的属性时,如果对象不存在该属性,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。
比如我需要读取person.constructor时
person对象本没有constructor属性
就会到person的原型对象中去找到person.__proto__.constructor
即:
person.constructor === Person.prototype.constructor // => true
person.constructor === person.__proto__.constructor // => true
Person.prototype.constructor === person.__proto__.constructor // => true
当查询到最顶层时
Object.prototype.__proto__ === null // => true
即Object的原型对象就不存在原型了
这时查询就终止。
网友评论