0
如果我在對象的構造函數外聲明基礎原型對象,則所有創建的對象都基於該單個基礎對象,這不適合我的需要,因爲我需要基礎對象的多個實例。JavaScript原型繼承 - 這是做事的正確方式嗎?
總之:這段代碼是否正確?它的工作原理,但我很挑剔有正確的代碼。
例子:
function BaseObject()
{
BaseObject.prototype.insertObject = function()…
…
… // Some other functions.
}
function Object1()
{
Object1.prototype = new BaseObject();
Object1.prototype.coolFunction = function()…
…
… // Same kind of pattern.
}
function Object2()
{
Object2.prototype = new Object1();
Object2.prototype.incredibleFunction = function()…
…
… // You get the idea.
}
如果我做'Object1.prototype =新BaseObject();'在構造函數之外,從Object1創建的每個對象都依賴於BaseObject的單個實例。我需要一種方法來創建BaseObject的新實例。 – user1092719 2012-02-09 19:46:18
即使您在構造函數中執行它,情況依然如此。 'Object1'的每個實例都共享Object1.prototype,因此每次重新分配Object1時,所做的每件事情都是使每個Object1實例都依賴於同一個新構建的原型BaseObject。 – Domenic 2012-02-09 19:48:20
但是,當我在我的實際代碼中這樣做時,它的工作原理與我需要的一樣,因爲每次構造函數被調用時,都會將該對象上的原型設置爲「BaseObject」的新創建實例,然後重複該模式並它工作正常。有一個乾淨和正確的方法來做到這一點。 – user1092719 2012-02-09 19:56:11