Jquery 如何使用变量作为键名?

Jquery 如何使用变量作为键名?,jquery,json,post,key,Jquery,Json,Post,Key,我有一个jQuery: $.post(document.URL, {'blanks':word}); $.post(document.URL, {'blanks':{ word :{'time':T}}}); 这是我登录终端时的结果: { blanks: 'plotted' } { blanks: { word: { time: '1386984059685' } } } 为什么变量word在第二条jQuery语句中没有改变?我认为这与将单引号添加到键名有关,但我无法找到解决方法 我用电

我有一个jQuery:

$.post(document.URL, {'blanks':word});  
$.post(document.URL, {'blanks':{ word :{'time':T}}});
这是我登录终端时的结果:

{ blanks: 'plotted' }
{ blanks: { word: { time: '1386984059685' } } }
为什么变量
word
在第二条jQuery语句中没有改变?我认为这与将单引号添加到键名有关,但我无法找到解决方法

我用电脑解决了我的问题

$.post(document.URL, {'blanks':{'word':word, 'time':T}});
导致

{ blanks: { word: 'plotted', time: '1386984409890' } }

但我很好奇,为什么变量在它是键的时候没有改变,如果有办法的话

如果您提前定义了数据,您可以执行以下操作:

var someVar = 'foo';
var data = {};

data[someVar] = 'My key is "foo"';

console.log(data.foo);
console.log(data[someVar]);
console.log(data['foo']);
所有这些都将记录
我的密钥是“foo”

当您创建这样的对象时,
{prop:'value'}
属性名称不能是变量-您键入的内容就是您得到的内容。引号是可选的,除非您使用会引发错误的字符。使用点符号访问属性也是如此,例如:
myObj.propName.anotherPropName

括号表示法更灵活,因为您可以访问其他无效的属性名称,还可以使用变量设置和访问属性

var myObj = {
  '@##%$#%%^&%' : 'some value'
};
console.log(myObj['@##%$#%%^&%']); //logs "some value"
键不能是变量,请参见