JavaScript繼承機制

由於JavaScript語言設計者Brendan Eich所處的時代(1994年)面向對象編程興盛,他也受到了影響,JavaScript裏面的所有數據類型都是對象,但是他想要的是一個簡易的腳本語言不想使其複雜化,因而他沒有引入“類”,設計了“繼承”機制來將所有對象聯繫起來。

JavaScript中沒有“子類”和“父類”的概念,也沒有“類”(class)和“實例”(instance)的區分,全靠一種很奇特的“原型鏈”(prototype chain)模式來實現繼承。

function DOG(name){
	this.name = name;
}
DOG.prototype = { species:'犬科'};

var dogA = new DOG('大毛');
var dogB = new DOG('二毛');

alert(dogA.species);
alert(dogB.species);


顯示結果爲:

犬科

犬科

由於所有的實例對象共享同一個prototype對象,那麼從外界看起來,prototype對象就好像是實例對象的原型,而實例對象則好像"繼承"了prototype對象一樣。這就是Javascript繼承機制的設計思想。

 

摘自:http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章