2013-03-02 116 views
2

我瞭解JavaScript原型。但混淆原型屬性和隱藏原型鏈接的區別。對象原型鏈接和函數原型鏈接之間的區別?JavaScript原型屬性和原型鏈接

可能有人請提供一個非常簡單的例子來演示相同的(主要是原型的鏈接/鏈接...喜歡它的外觀彌補了財產在兩個原型對象鏈接和函數原型鏈接而言)

+0

我不認爲有任何一種隱藏的鏈接。至少不是這幾天。原型屬性就是它的全部。對象原型和函數原型也沒有區別。 – Jodes 2013-03-02 08:09:27

+1

去這裏:不錯的閱讀 - http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/ – 2013-03-02 08:22:15

回答

1

文檔對象模型(DOM)是JavaScript中繼承的一個很好的例子。

想象一下你有一個div。這是HTMLDivElement的一個實例。

var div = document.createElement('div'); 

div instanceof HTMLDivElement; // -> true 

div instanceof HTMLElement; // -> true 

div instanceof Element; // -> true 

div instanceof Object; // -> true 

div對象,幷包括所有的方法和屬性是在HTMLDivElement.prototype。它屬於__proto___屬性,但這並不意味着您應該執行div.__proto__.insertBefore以訪問insertBefore。這就像其他語言的包含。

換句話說div.__proto__指向HTMLDivElement.prototype

prototype是一個對象。正因爲如此,它可以擁有自己的__proto__指針。在這種情況下,HTMLDivElementprototype是一個對象,並具有指向HTMLElement.prototype__proto__,因此它包含所有方法和屬性。它沿着這條路走下去,直到Object.prototype沒有__proto__指針和查找stups。

我試圖避免使用new關鍵字來解釋這一點。我希望它可以幫助...