美文网首页
原型和原型链 prototype和__proto__

原型和原型链 prototype和__proto__

作者: vivianXIa | 来源:发表于2021-01-23 23:59 被阅读0次
  • prorotype是静态属性
  • proto是实例属性
    prototype表示类的原型对象,proto表示原型对象中定义的内部属性[prototype]的值。
    类的每一个实例都有一个proto属性,用于引用创建它的构造方法的prototype属性,也就是该类的原型对象,即存在如下等式:(new Array("abc")).proto===Array.prototype (Array("abc")为Array的实例)
    image.png

constructor

上图中,现在理解原型对象(Person.prototype)下constructor属性
这个属性其实就是将原型对象指向关联的构造函数

Person.prototype.construstor = Person

原型链

每一个对象都会在内部初始化一个prototype(原型),当查找一个属性时,先会从属性没查找,没有的话再去prototype里去查找,prototype又会有自己的prototype,直到找到为止,一旦找到就不会继续向上查找。原型对象Person.prototype的原型就是Object.prototype这个大boss,所有原型对象都是Object构造函数生成的.它不再有原型,为null,是尽头。

proto

第一张图中看到,在person1和person2实例对象下面有一个[[prototype]],其实没有标准的方式可以访问它,但是主流浏览器上在每个对象上(null除外)都支持一个属性,那就是proto,这个属性会指向该对象的原型

function Person(){}
var person1 = new Person
console.log(person.proto === Person.prototype//true)

相关文章

网友评论

      本文标题:原型和原型链 prototype和__proto__

      本文链接:https://www.haomeiwen.com/subject/rpypzktx.html