0

嗨,我的代码出现未捕获的引用异常。这就是我所拥有的:

 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

为什么我不能访问我的数据对象?

4

2 回答 2

1

你需要说:

this.data.debug = options.debug;

...假设您以设置为(外部)对象init()的方式调用该函数,例如,使用.thisconfig.init()

或者你可以说:

config.data.debug = options.debug;

data当您尝试直接使用时出现未定义错误的原因是data.debug实际上没有定义为变量,它是对象的属性。仅仅因为是对象上的方法并不意味着它会自动引用其他对象属性。datainit()

于 2013-06-19T11:05:55.990 回答
0

好吧,data 变量 未定义的。您可能希望在您的.data 属性上使用该对象config(可通过this关键字访问):

…
    if (options.hasOwnProperty('debug')) {
        this.data.debug = options.debug;
    }
…

另请参阅Javascript: Object Literal reference in own key's function 而不是 'this'以获取不同的访问方法.data

于 2013-06-19T11:05:49.323 回答