js中 __proto__ 和 prototype

 js中的对象都有__proto__属性存在【隐式原型】,注意是两个_,

1,javascript对象的__proto__指向的是该对象的构造函数的原型对象,即constructor.prototype。

2,每个函数在创建之后都会获得一个prototype的属性,该属性指向函数的原型对象,所以函数除了__proto__属性外,多了一个prototype属性。

举几个栗子:

var Person = function () { };
var p = new Person();
console.log(p.__proto__ === Person.prototype);  //true
console.log(Person.prototype.constructor === Person); //true

函数原型上的constructor对象指向的是函数本身,实例化出来的对象的__proto__指向的是构造函数原型对象。

 

最后,一般认为,Object.prototype.__proto__  === null。

 

真正厉害的人,大抵都是谦卑而善良的。

当你想要批评别人的时候,要记住,这世上并不是所有人都有你拥有的那些优势。【续】

posted @ 2018-07-16 14:17  tangjiao_Miya  阅读(176)  评论(0编辑  收藏  举报