在对象中调用对象方法 - 错误:无法读取未定义的属性
Calling object method within the object—error: cannot read property of undefined
我正在尝试在同一个对象中调用getQuestions()
它是一个方法。但是当我尝试读取 quizz.config.allQuestions 属性时,我收到一条错误消息,内容为"未捕获的类型错误:无法读取未定义的属性'getQuestions'"。我在这里缺少什么吗?
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();
这样做的问题是$.getJSON
是一个异步函数,这意味着它不会立即返回该值。这就是为什么它有一个回调。相反,您可以尝试像这样定义getQuestions
:
getQuestions: function(callback) {
$.getJSON(quizz.config.urlJSON, callback);
}
然后你可以得到这样的值:
quizz.getQuestions(function(questions) {
quizz.config.allQuestions = questions;
});
相关文章:
- 如何使用jquery读取对象字符串
- 读取在具有IE的工作程序中生成的对象URL
- 如何将从XML读取的值存储到本地对象's成员使用.get()函数
- 如何读取csv文件并将其转换为javascript中的对象
- 无法读取数据“;对象名称“;未定义的角度方向
- javascript:对具有对象的对象进行排序并读取它们
- 如何使用 Backbone 读取通过同一 REST URL 返回的两个不同对象
- 角度无法读取数组中的对象
- 未捕获的类型错误: 无法读取未定义的 - 对象的属性
- 正在读取php文件中通过ajax发送的json对象
- 如何从节点.js请求对象读取数据事件(块)
- Javascript,'for in' 循环将对象读取为字符串
- 从 javascript 中的 JSON 对象读取值
- 仅从 JSON 对象读取日期或仅读取白天时间
- 从firebase链接应用程序中的.val()对象读取值
- 如何使用子对象读取对象
- 在POST上将javascript对象读取为JSON
- 如何从 JSON 对象读取密钥
- 仅当对象存在时,才从 javascript 中的 html 表单对象读取
- expect(object). toequal (object)抛出错误对象读取没有方法调用