再次理解JS的prototype,__proto__和constructor

个人总结: 下面这篇文章很好的讲解了js原型,原型链,个人的总结是要记住这三个属性 prototype、__proto__和constructor

首先明确,js中一切都是对象object(A)。 (这里用A来表示)

 

这个对象object分为

实例对象(B)(A和B是两个不同的对象...这个意思很难表达),函数,原型对象这三种类型。

 

 

只要是函数就有prototype属性,它指向,这个函数的原型对象。

只要是对象(A)就有__proto__属性,它指向实例化这个对象的函数的原型对象。

只要是原型对象就有constructor属性,它指向它的构造函数。

 

 

function Peson(name.age)

{

this.age = name;

this.age = age;

}

 

var huhao = new Person(huhao,23);

 

来分析一下:

Person是一个函数,所以Person有prototype和__proto__属性,

prototype属性指向Person.Prototype

__proto__属性指向Function.Prototype

 

huhao是一个对象,所以huhao有__proto__属性

__proto__属性Person.Prototype

 

所以Person.prototype == huhao.__proto__

Person.prototype.constructor == Person

 

 

 

posted @ 2018-05-11 14:17  hh9515  阅读(147)  评论(0编辑  收藏  举报