2011-01-11 50 views

回答

2

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

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

注意,在这里你没有创建一个关闭如果这是你的恐惧。这仅发生于function表达

1

尝试:

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

由于在JavaScript中,赋值也返回值一样,所以你可能有点简洁。

+0

+1我也喜欢。 – JustcallmeDrago 2011-01-11 22:53:35

相关问题