以前研究過javascript得原型鏈,但始終覺得有些繞,而且不清晰。最近看了javascript模式後,總算悟了。其實我是受了傳統語言類的影響。javascript雖然是面向對象的語言,但是它是沒有類的概念的,只是由於它的靈活性,可以模仿強類型的語言,我們卻先入爲主的爲javascript強加上了枷鎖,從一個莫須有的模擬角度去理解原型,當然會覺得似懂非懂。所以,我們要拋開類的概念,僅僅從javascript的基本數據結構來理解。
其實整個原型鏈就是一個鏈表,prototype,__proto__就是一些指針而已,不要給它加上主觀解讀。這裏附上原型鏈圖
二、函數有2個屬性,prototype和__proto__, 對象實例只有1個屬性__proto__, prototype 只是指向一個原型對象, __proto__纔是真正的原型鏈指針,顯示了繼承信息。
三、Function比較特殊,它的2個屬性都是指向同一個原型。