动态地将元素附加到对象

时间:2014-03-20 23:23:22

标签: jquery

http://jsfiddle.net/LThXc/

object =  {}
key = 'jimbo'
$.extend( object, { key : 1 })

console.log( object ); // returned {key: 1}, expected {jimbo: 1}

很奇怪。变量被计算为一个字符串,并用作命名键。我希望将密钥称为jimbo,而不是key

1 个答案:

答案 0 :(得分:1)

我不确定$ .extend的优点是什么,但这有效:

object[key]=1

正如您所注意到的,您的示例的问题是{key:1},将“key”评估为字符串,而不是变量。类似的行为适用于

object.key = 1

object[key] = 1

我花了更多的时间来承认在我自己的代码中调试这个问题,特别是当我开始使用javascript时。