我收到了Uncaught TypeError的错误?

时间:2015-11-20 12:58:02

标签: javascript object

我正在创建一个简单的测验应用程序,但我坚持制作一个对象构造函数 错误是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

3 个答案:

答案 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 ?" ]

DEMO