在object-error中调用object对象:无法读取undefined的属性

时间:2016-02-10 00:01:15

标签: javascript methods error-handling

我正在尝试在同一个对象中调用PDO::FETCH_OBJ这是一种方法。但是当我尝试读取quizz.config.allQuestions属性时,我收到一条错误消息“未捕获的TypeError:无法读取未定义的属性'getQuestions'。”我在这里缺少什么吗?

System.Web.HostingEnvrionment.ShutdownReason

1 个答案:

答案 0 :(得分:2)

当您尝试分配给allQuestions时,quizz对象尚未初始化。因此,您必须在创建对象后执行此操作。

var quizz = {
    config: {
      urlJSON: 'questions.json'
      // don't declare allQuestions
    },
    getQuestions: ...
};
quizz.allQuestions = quizz.getQuestions();

的问题是$.getJSON是一个异步函数,这意味着它不会立即返回该值。这就是为什么它有一个回调。相反,您可以尝试像这样定义getQuestions

getQuestions: function(callback) {
  $.getJSON(quizz.config.urlJSON, callback);
}

然后你可以得到这样的值:

quizz.getQuestions(function(questions) {
  quizz.config.allQuestions = questions;
});