无法从父构造函数继承属性

时间:2019-02-22 17:08:58

标签: javascript

我是JavaScript的新手,所以我不确定如何问这个问题。我至少有几个文件。

Question.js:

class Questions {

  constructor(questions) {
    super();
    this.questions = questions;
  }

  startUp() {
    console.log(this.questions);
  }
}

Answers.js:

class Answers {
  constructor() {
     super();
     this.addQuestions();
  }

  addQuestions() {
    this.question = new Questions();
  }
}

我想发生的事情是以某种方式从构造函数继承this.questions并从startUp()在控制台中显示它,但是我总是得到“未定义”。有什么办法吗?

1 个答案:

答案 0 :(得分:1)

您的代码中几乎没有错误

  1. 您正在super()中调用class,这是没有继承的
  2. 您没有将任何内容传递给Questions问题构造函数,因此new Questions()将返回并以questions:undefined为对象
  3. 您在s末尾缺少Question

class Questions {
  constructor(questions) {
    this.questions = questions;
  }

  startUp() {
    console.log(this.questions);
  }
}
console.log(new Questions())
class Answers {
  constructor() {
     this.addQuestions();
  }

  addQuestions() {
    this.questions = new Questions(["Question 1","Question2"]);
  }
}
let x = new Answers();
x.addQuestions();
x.questions.startUp();

相关问题