2013-07-12 34 views
0

我新的Web開發,從C/C++/x86的到來。盡我所能規避它,似乎我需要使用JavaScript(驚喜!)。如果我不得不使用它,那麼我可能會很好地理解發生了什麼。這一直是困難的,因爲我已經習慣了能夠輕鬆映射的C/C++下降到86/x86_64的弄清楚發生了什麼。更何況,Javascript是一個完全不同的習慣範式。Undertanding JavaScript的原型關鍵字和實施

那麼,這是什麼原型關鍵字,以及這個原型繼承是如何實現的?

在閱讀了一些高度吹捧的書籍和指南後,我會看到的是一些例子。每個對象(保存全局對象)都有一個原型,這是另一個對象。在這些所有這些對象如何鏈接的背景下,必須有一個非常簡單的機制。

我不需要再聽到「一個新對象繼承舊對象的屬性」的願望,你可以告訴12歲的孩子。例如,我知道C++的虛擬表如何工作來理解虛函數的工作原理 - 一切都非常合理。

那麼,如何不JavaScript中使用的原型?

謝謝。

+0

因此,閱讀的V8源。請記住,並非所有的實現都會以相同的方式實現。到目前爲止,這聽起來像是你過度思考它。 –

+0

http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work – lifetimes

+0

@Zenith讀取。 – gone

回答

0

認爲prototype屬性爲staticprototype只是一個訪問的字,它意味着什麼,除了分配屬性,還是寫了,你用這個詞prototype訪問對象。

0

prototype是Javascript的語言構造。這是JavaScript的繼承方法。

在JavaScript(直到ECMAScript6,但這是一個不同的主題),並沒有真正的classes。相反,我們創建對象的實例,並且我們可以使用new關鍵字創建這些對象的子實例。例如:

var parent = function() {}; 
parent.prototype.lastName = "Flynn"; 
var child = new parent(); 
console.log(child.lastName); //Outputs "Flynn" 

而且,有趣的是:

parent.prototype.nationality = "American"; 
console.log(child.nationality); //Outputs "American"