Javascript 访问另一个对象中的对象
您好,我的代码中出现了一个未捕获的引用异常。这是我得到的:Javascript 访问另一个对象中的对象,javascript,Javascript,您好,我的代码中出现了一个未捕获的引用异常。这是我得到的: var config = { debug: true, data: { debug: false, logErrorsOnServer: true, defaultCulture: '', serviceUrl: '' }, init: function(options) { if (!options) {
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
我有什么不能访问我的数据对象呢?嗯,
数据
变量未定义。您可能希望在config
的.data
属性上使用对象(可通过访问):
有关访问数据的不同方法,请参见。您需要说:
this.data.debug = options.debug;
…假设您以设置为(外部)对象的方式调用init()
函数,例如使用config.init()
或者你可以说:
config.data.debug = options.debug;
当您试图直接使用数据时,数据
未定义错误。调试
的原因是事实上数据
未定义为变量,它是对象的属性。仅因为init()
是对象上的一个方法,并不意味着它会自动引用其他对象属性。此处可能有误,但请尝试此方法。data.debugh出了什么问题。乍一看Chrome devtoolsdata.debug=options.debug中的一切正常。debug抛出不一致引用错误:数据未定义我无法获取它。您有config.debug、data.debug和options.hasOwnProperty('debug')。在我看来,这是两对多。就我所知,你没有变量数据。如果要访问config
对象的data
属性,必须使用config.data
或this.data
,假设您使用config.init()
调用函数。JavaScript没有任何像Java那样的隐藏魔法,这是隐式的(这是一件好事)。它完全按照你告诉它的去做(大多数时候)。
config.data.debug = options.debug;