gpt4 book ai didi

javascript - 在对象内调用对象方法——错误: cannot read property of undefined

转载 作者:行者123 更新时间:2023-11-30 16:17:17 25 4
gpt4 key购买 nike

我正在尝试在同一个对象内调用 getQuestions(),它是一个方法。但是当我尝试读取 quizz.config.allQuestions 属性时,我收到一条错误消息“Uncaught TypeError: Cannot read property 'getQuestions' of undefined.”。我在这里缺少什么吗?

var quizz = {
config: {
urlJSON: 'questions.json',
allQuestions: quizz.getQuestions()
},

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

最佳答案

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

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

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

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

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

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

关于javascript - 在对象内调用对象方法——错误: cannot read property of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35304557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com