您好我的代码上有一个未被捕获的引用异常。这就是我所拥有的:
var config = {
debug: true,
data: {
debug: false,
logErrorsOnServer: true,
defaultCulture: '',
serviceUrl: ''
},
init: function(options) {
if (!options) {
return;
}
if (options.hasOwnProperty('debug')) {
data.debug = options.debug;
}
},
};
当我尝试获取data.debug的值时,我得到一个未被捕获的引用错误,其中包含:
UncoughtReference Error: data is not defined
我不能访问我的数据对象吗?
答案 0 :(得分:1)
你需要说:
this.data.debug = options.debug;
...假设您以将this
设置为(外部)对象的方式调用init()
函数,例如config.init()
。
或者你可以说:
config.data.debug = options.debug;
当您尝试直接使用data
时,如果您未定义data.debug
时出现错误的原因,实际上data
未定义为变量,它是对象的属性。仅仅因为init()
是对象上的方法并不意味着它会自动引用其他对象属性。
答案 1 :(得分:0)
嗯,data
变量 未定义。您可能希望使用.data
的{{1}} 属性上的对象(可通过this
keyword访问):
config
有关访问…
if (options.hasOwnProperty('debug')) {
this.data.debug = options.debug;
}
…
的不同方法,另请参阅Javascript: Object Literal reference in own key's function instead of 'this'。