访问另一个对象内的对象

时间:2013-06-19 10:57:47

标签: javascript

您好我的代码上有一个未被捕获的引用异常。这就是我所拥有的:

 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

我不能访问我的数据对象吗?

2 个答案:

答案 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'