2

我正在尝试在 javascript 中使用 OOP。我正在尝试的是,

我有 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"

但警报显示我是空的。谁能告诉我我在这里做错了什么?

4

1 回答 1

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
于 2013-02-14T06:50:49.380 回答