在 JavaScript 中,我创建了一个像这样的对象:
var data = {
'PropertyA': 1,
'PropertyB': 2,
'PropertyC': 3
};
如果直到运行时才确定属性名称,是否有可能在该对象最初创建之后为其添加其他属性? IE
var propName = 'Property' + someUserInput
//imagine someUserInput was 'Z', how can I now add a 'PropertyZ' property to
//my object?
是的。
var data = {
'PropertyA': 1,
'PropertyB': 2,
'PropertyC': 3
};
data["PropertyD"] = 4;
// dialog box with 4 in it
alert(data.PropertyD);
alert(data["PropertyD"]);
是的,有可能。假设:
var data = {
'PropertyA': 1,
'PropertyB': 2,
'PropertyC': 3
};
var propertyName = "someProperty";
var propertyValue = "someValue";
任何一个:
data[propertyName] = propertyValue;
或者
eval("data." + propertyName + " = '" + propertyValue + "'");
第一种方法是首选。如果您使用的是用户提供的值,则 eval()具有明显的安全问题,因此,如果可以避免使用它,则不要使用它,但是值得知道它的存在以及它可以做什么。
您可以参考以下内容:
alert(data.someProperty);
或者
data(data["someProperty"]);
或者
alert(data[propertyName]);