正所谓道生一,一生二,二生三,三生万物;原型链的设计原理其实和这一样,万物皆对象,任何自定义的函数其实都是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。