作为对象键的变量在IE中不起作用[duplicate]

问题描述 投票:1回答:2

Fiddle

var json = {name: 'chan'};
var variable = 'age';

$.extend(json, {[variable]: 35});

$('#result').html(JSON.stringify(json));

此方法适用于除IE之外的大多数流行浏览器,我需要动态定义对象密钥,如何使其在IE上起作用?

javascript jquery
2个回答
8
投票

对象初始值设定项中属性名称的[[]]表示法是ES2015的功能,Internet Explorer的较早版本不支持此功能。 (all浏览器的旧版本不支持它;许多移动设备也将其视为错误。)

但是您可以在属性分配表达式中使用[ ]

json[variable] = 35;

应该随处可见。


2
投票

只需这样做:json[variable] = 35而不是$.extend(json, {[variable]: 35});

这应该在IE中有效。

© www.soinside.com 2019 - 2024. All rights reserved.