原型鏈關系圖.jpg
__proto__
和 prototype
__proto__
是對象才有的屬性
prototype
是函數才有的屬性
//①構造器Function的構造器是它自身
Function.constructor=== Function; //true
//②構造器Object的構造器是Function(由此可知所有構造器的constructor都指向Function)
Object.constructor === Function; //true
//③構造器Function的__proto__是一個特殊的匿名函數function() {[native code]}
console.log(Function.__proto__); //function() {[native code]}
//④這個特殊的匿名函數的__proto__指向Object的prototype原型。
Function.__proto__.__proto__ === Object.prototype //true
//⑤Object的__proto__指向Function的prototype,也就是上面③中所述的特殊匿名函數
Object.__proto__ === Function.prototype; //true
Function.prototype === Function.__proto__; //true