prototype与_proto_

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

原文地址:https://www.cnblogs.com/yyzyxy/p/8670811.html