2013-02-14 53 views
2

我想在JavaScript中使用OOPs。我正在嘗試的是,最簡單的JavaScript繼承?

我有2類說classAclassB。我在classB中繼承classA。像:

function classA(){ 
    this.propA = "somevalue of A"; 
} 

function classB(){ 
    classB.prototype = new classA();    //inheriting 
    classB.prototype.constructor = classB;  //updating constructor defination 
    this.propB = "somevalue of B"; 
} 

現在我創建ClassB的對象:

var classBObject = new classB(); 

,比試圖訪問與基類屬性值:

alert(classBObject.propA);  //here i am expecting "somevalue of A" 

但警報顯示我空。任何人都可以告訴我我在這裏做錯了什麼?

+0

JavaScript是一種[基於原型的語言(http://en.wikipedia.org/wiki/Prototype-based_programming),而不是一個[基於類的語言](http://en.wikipedia.org/wiki/Class-based_programming)。所以,從技術上講,沒有任何課程。 在Javascript中,對象直接從其他對象繼承,與其他基於類的語言不同,對象從類繼承對象。 Javascript中有5種類型:* String *,* Number *,* Boolean *,* Undefined *和* Null *。其他一切都是*對象*。 – Tuan 2013-02-14 08:19:13

回答

3

移動CLASSB的原型分配的構造外:

function classA(){ 
    this.propA = "somevalue of A"; 
} 

function classB(){ 
    // classB.prototype.constructor = classB; 
    //^no need for this, constructor will be overwritten 
    // by classB.prototype = new classA 
    this.propB = "somevalue of B"; 
} 

classB.prototype = new classA; // assing prototype for classB here