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

Ric*_*ing 4 javascript arrays arguments properties object

我有一个构造函数,可用于实例化一个新的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
             });
Run Code Online (Sandbox Code Playgroud)

这应该做的是创建一个像这样的按钮对象.

button.name      //should be "My button"
button.value     //should be "My super special value",
button.color     //should be "black",
button.enabled   //should be false
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何实现这一点,因为如果你得到关联它是一个字符串.并且this.arg = args [arg]显然不起作用.

注意:输入必须是一个数组,如果用户将一个总的其他关联数组作为参数,则属性将不同.{test:true}动态创建一个带有test属性的按钮,其值为true.

这意味着button.test = true不是一种选择.它必须是动态的.

Que*_*tin 5

而且this.arg = args[arg]显然是行不通的

this[arg] = args[arg]
Run Code Online (Sandbox Code Playgroud)