var json = {name: 'chan'};
var variable = 'age';
$.extend(json, {[variable]: 35});
$('#result').html(JSON.stringify(json));
此方法适用于除IE之外的大多数流行浏览器,我需要动态定义对象密钥,如何使其在IE上起作用?
对象初始值设定项中属性名称的[[]
]表示法是ES2015的功能,Internet Explorer的较早版本不支持此功能。 (all浏览器的旧版本不支持它;许多移动设备也将其视为错误。)
但是您可以在属性分配表达式中使用[ ]
:
json[variable] = 35;
应该随处可见。
只需这样做:json[variable] = 35
而不是$.extend(json, {[variable]: 35});
。
这应该在IE中有效。