声明一个对象,其中键被赋予其他键的值?

时间:2011-01-11 07:04:35

标签: javascript

对此有更好的称号吗?

好的,这是合法的吗?

var myobj = {
    key1: "val1",
    key2: this.key1
};

我还没有尝试过,但是我正在寻找一种方法来为对象中的单独键提供相同的值,最好是以简洁的方式。

2 个答案:

答案 0 :(得分:2)

您的代码是合法的但不符合您的意思。评估时key:...部分this未绑定到尚未存在的对象,而是绑定到构建myobj的上下文。您必须将值存储在变量中,然后使用变量... like:

var kv = "val1";
var myobj = {
    key1: kv,
    key2: kv
};

请注意,如果这是您的恐惧,那么您​​不会创建闭包。这仅适用于function表达式

答案 1 :(得分:1)

尝试:

var myobj = {};
myobj['key2'] = (myobj['key1'] = 'val1');

因为在javascript中,值赋值也会返回值,所以你可以有点简洁。