我正在创建一个简单的测验应用程序,但我坚持制作一个对象构造函数 错误是Uncaught TypeError:Question.pushQuestion不是函数
function Question(question){
this.question = [];
}
Question.prototype.pushQuestion = function(question){
this.question.push(question);
}
var question1 = Question("is 1 = 1 ?");
Question.pushQuestion(question1);//error
答案 0 :(得分:4)
var question1 = new Question("is 1 = 1 ?");
您错过了new
关键字。
此外,您还可以在此处创建对象的实例:
var question1 = Question("is 1 = 1 ?");
因此,您应该使用question1
来访问原型链中的任何方法,例如
question1.pushQuestion('How are you doing?');
答案 1 :(得分:1)
在对象原型上定义函数时,可以通过在该对象的新编辑实例上调用该函数来调用它。
function Question(question){
this.question = [];
}
Question.prototype.pushQuestion = function(question){
this.question.push(question);
}
var question1 = new Question("is 1 = 1 ?");
question1.pushQuestion(question1);
你想要达到什么目的?因为我很确定你不想把问题本身推到question.list
。
答案 2 :(得分:1)
看起来您正在尝试生成一系列问题。我会这样做:
get status = () => this.xhr.status;
然后,您可以编写一个新方法来获取列表中的下一个问题:
function QuestionList() {
this.questions = [];
this.counter = 0;
}
QuestionList.prototype.pushQuestion = function (question) {
this.questions.push(question);
}
var questionList = new QuestionList();
questionList.pushQuestion("is 1 = 1 ?");
questionList.pushQuestion("is 1 = 2 ?");
questionList.questions // [ "is 1 = 1 ?", "is 1 = 2 ?" ]