动态添加参数作为对象的属性 - JavaScript

时间:2012-03-02 10:09:38

标签: javascript arrays object properties arguments

我有一个构造函数,可用于实例化一个新的Button对象。创建此对象时,您可以使用一个参数满足该功能。如果此参数是关联数组,则数组的所有值都将成为Button对象的属性。

所以我要做的就是这个

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}将动态创建一个带有test属性的按钮,其值为true。

这意味着button.test = true不是一个选项。它必须是动态的。

2 个答案:

答案 0 :(得分:5)

  

this.arg = args[arg]显然无法正常工作

this[arg] = args[arg]

答案 1 :(得分:0)

function Button(args){     for(arg in args){        这[arg] = args [arg];     } };

var button = new Button({                      名称:“我的按钮”,                      价值:“我的特殊价值”,                      颜色:“黑”,                      启用:假              });