原型链prototype和__proto__区别和联系

正所谓道生一,一生二,二生三,三生万物;原型链的设计原理其实和这一样,万物皆对象,任何自定义的函数其实都是Function的一个实例,在一开始学习的时候,总是对propertype和__proto__指向的是否是一个东西困惑不解,

其实对函数的本源Function来说,Function.propertype===Function.__proto是完全相等的,

但是对Function的任何一个实例,比如var sum=function(){},对于他而言,sum.prototype和sum.__proto__是不相等的。

为什么会出现这种情况呢,那是因为sum.prototype是一个对象,

而sum.__proto__则只想了构造函数

__proto__是一个隐藏属性,任何一个函数都有,prototype任何函数也有这个属性,指向函数的原型

 __proto__指向了他上一级的原型

所有通过函数new出来的东西,例如sum=new Function();这个东西sum都有一个__proto__指向这个函数function()的prototype。

 

原文地址:https://www.cnblogs.com/webseng/p/6933206.html