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;