2

js原型链中的object.__proto__ 和object.prototype的区别

1)每个对象都有.__proto__属性
2)每个构造函数(函数也是对象,但对象不一定是函数)都具有.prototype属性(prototype是构造函数独有的属性)
3)每个对象的__proto__指向自身构造函数的prototype

1、函数的例子

clipboard.png

clipboard.png

clipboard.png

clipboard.png
说实话被绕得好晕[笑哭!]

clipboard.png

clipboard.png

2、对象的例子

clipboard.png

clipboard.png

本文是照着http://www.cnblogs.com/libin-...这上面的讲解,验证了一下,加深自己对原型链的理解。自身理解不深,有答案说.__proto__===.constructor.prototype是不对的,如果一个对象时通过Object.create函数构造出来的,那其.__proto__就不一定指向.constructor.prototype了。

clipboard.png
不知真假,所以特意试了一下,出现这样的原因是person2的原型对象指向的是person1

person1.isPrototypeOf(person2);  //true

huanglw
128 声望9 粉丝

前端工程师