如何引用定义的值

时间:2015-07-16 14:16:59

标签: javascript

我有一个试图引用先前定义的值的javascript文件,但该值的容器为null:

if (typeof (myNamespace) == "undefined") { myNamespace = {}; }

myNamespace.myClass = {
    myConstants: {
        value: "someValue",
    },

    something : {
        values: [myNamespace.myClass.myConstants.value] // Errors here
    }
};

我认为JavaScript是以自上而下的方式执行的,因此在填充myNamespace.myClass.myConstants.value时应该已经定义了something.values[]

1 个答案:

答案 0 :(得分:3)

在评估您的表达式myNamespace.myClass.myConstants.value时,myNamespace.myClass的值仍为undefined。在评估整个对象初始值设定项表达式之前,不会发生赋值。

这样做的结果是无法从对象初始化表达式内部进行内部交叉引用。您必须将其拆分为单独的作业。

myNamespace.myClass = {
    myConstants: {
        value: "someValue",
    },

    something : {
        values: []
    }
};

myNamespace.myClass.something.values.push(myNamespace.myClass.myConstants.value);