2011-08-07 63 views
1

我有這個超有兩個專用的元素和兩個方法來訪問它們:我如何使用Javascript中的參數調用超類的構造函數?

function superclass(a,b) { 
    var x = a; 
    var y = b; 
    this.getX = function() {return x;} 
    this.getY = function() {return y;} 
} 

我想創建一個名爲說「ChildClass」,在它的構造函數,調用父類的構造子,給它的兩個參數。所以我可以說parent = new SuperClass(2,3)我同樣需要能夠說child = new ChildClass(3,4),當我寫alert(child.getX())時,瀏覽器showuld提示「 3" 。有誰知道如何做到這一點?

+0

的http://stackoverflow.com/questions/1586915/performing-inheritance-in-javascript –

+0

走近http://stackoverflow.com/q/7844843/290182 – beldaz

回答

0

IIRC,要在JavaScript中創建構造函數層次結構,您需要自行編寫它。

這意味着,

function SuperClass { 
} 

function SubClass { 
    this.inheritFrom = SuperClass; 
    this.inheritFrom(); 
} 

SubClass.prototype = new SuperClass(); 

或者,也許,這仍然是首選的技術:

function SuperClass { 
} 

function SubClass { 
} 

SubClass.prototype = new SuperClass(); 
SubClass.prototype.constructor = SubClass; 

有一些庫,使JavaScript的繼承少PITA。

我建議您閱讀David Flannagan關於JavaScript的書籍,部分內容是關於原型。

+1

的問題可能的重複數據刪除技術是關於帶有參數的超。你的回答中根本沒有解決這個問題。 – beldaz

相關問題