动态添加参数作为对象的属性 - JavaScript
问题描述:
我有一个构造函数可用于实例化一个新的Button对象。当创建这个对象时,你可以用一个参数来满足函数。如果此参数是关联数组,则该数组的所有值都将成为Button对象的属性。动态添加参数作为对象的属性 - JavaScript
所以我想要做的就是这个
function Button(args){
for (arg in args)
{
//Add the name of arg as property of Button with arg as value.
}
};
var button = new Button({
name:"My button",
value:"My super special value",
color:"black",
enabled:false
});
这是什么应该做的是创建一个按钮对象是这样的。
button.name //should be "My button"
button.value //should be "My super special value",
button.color //should be "black",
button.enabled //should be false
我似乎无法弄清楚如何做到这一点,因为如果你得到的关联是一个字符串。而this.arg = args [arg]显然不起作用。
注意:输入必须是数组,如果用户将其他关联数组作为参数,那么属性将会不同。 {test:true}
会动态地创建一个测试属性值为true的按钮。
这意味着button.test = true
不是一个选项。它必须是动态的。
答
而且
this.arg = args[arg]
显然是行不通的
this[arg] = args[arg]
答
的(在args ARG){ 这个[参数] = ARGS [参数此
功能按钮(参数){ ]。 } };
VAR按钮=新按钮({ 名: “我的按钮”, 价值: “我的超级特殊价值”, 色: “黑”, 启用:假 });
谢谢!我对这个简单答案感到有些尴尬。 – 2012-03-02 10:15:05
@Rick Hoving你不应该感到尴尬,你不是唯一遇到这个问题的人哈哈;) – Bram 2014-02-26 15:13:59