直接上圖!額(⊙o⊙)…,有點亂!不着急,讓咱們一步步來理解html
首先先來明確這三個屬性的定義:函數
prototype
:指向原型對象
(函數特有屬性)__proto__
:指向構造該對象的構造函數的原型對象
constructor
:指回該原型對象中的構造函數步驟分析:prototype
f1.__proto__
指向其構造函數的原型對象,和其構造函數Foo.prototype
指向的是同一個原型對象,同時原型對象能夠經過constructor
指回構造函數(其餘構造函數同理)Foo.prototype.__proto__
指向了對象類型的原型對象Object.prototype :由於Foo原型對象自己也是一個對象,因此使用__proto__
指向了對象構造函數Object()
的原型對象Object.prototype
Object.prototype
是初始化的原型對象了,因此該對象的構造函數的原型對象爲空nullObject.prototype.__proto__ == null
,也就是找不到創造它的對象了Object.prototype
Foo.__proto__
、Object.__proto__
、Function.__proto__
這些構造函數的構造函數都是Function()
,因此它們的構造函數原型對象都是Function.prototype
Function.prototype
是經過Object構造函數建立的,因此其原型對象爲Object.prototype
__proto__
屬性指向構造該對象的構造函數的原型對象:
__proto__
都指向Object原型對象__proto__
都指向其構造函數的原型對象prototype
屬性指向原型對象
:
prototype
屬性原型對象
存在constructor
的構造函數,該屬性指回其構造函數f.prototype.__proto__ == f.__proto__.__proto__
也就是圖中的1+2 == 5+ 6,最終都是指向Object原型對象prototype
、__proto__
兩個最終都是指向同一個原型對象__proto__
的屬性值爲null嘿嘿~當時,只有我和上帝兩我的知道寫的是什麼,而如今只有上帝一我的知道了!code
參考連接:www.cnblogs.com/smoothLily/…cdn