2011-11-28 73 views
0

我想創建一個基於原型的繼承函數。我有這個JavaScript:JavaScript:基於原型創建繼承函數

Function.prototype.Inherits = function(parent) { 
    this.prototype = new parent(); 
    this.prototype.constructor = this; 
}; 

function Base() {}; 

function Foo() { 
    this.Inherits(Base); 
}; 

我想,做同樣的,因爲這一個功能:

Foo.prototype = new Base(); 
Foo.constructor = Base(); 

回答

1

的因爲你調用的方式,this在Function.prototype.Inherits功能將是創建對象,而不是它的構造函數(Foo)。你可能想要刪除行this.Inherits(Base);,並在Foo聲明之後(和之外)添加此行:Foo.Inherits(Base);

+0

好的,有什麼方法可以使它與'this'一起工作嗎? – Johan

+0

@Johan:他的觀點是用'this'做事情可能不是你想要的 – hugomg

+0

它有助於將'Function'改爲'Object'嗎? – Johan