1.函数有prototype
对象有_proto_
而函数又属于对象,所以函数也有_proto_
2. 每个对象(除了null)都有一个隐藏的属性——“__proto__”
每个函数都有一个属性叫做 prototype
对象的_proto_属性引用了创建这个对象的函数的prototype。即fn.__proto__ === Fn.prototype
3.
任何一个函数的prototype都是被Object创建,所以它(函数的prototype)的__proto__指向的就是Object.prototype
任何一个函数都是由Function创建,所以此函数的的__proto__指向的就是Function.prototype
1)
function Foo(){};
Foo.prototype.__proto__ === Object.prototype //true 即任何一个函数的prototype.__proto__ 都等于Object.prototype
2)
function Foo(){};
Foo.__proto__ === Function.prototype //true