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

Dynamical adding of parameters as properties of object - JavaScript

本文关键字:属性 -JavaScript 对象 添加 参数 动态      更新时间:2023-09-26

我有一个构造函数,可以用来实例化一个新的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

我似乎不知道如何实现这一点,因为如果你得到关联,它就是一个字符串。这个arg=args[arg]显然不起作用。

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

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

this.arg = args[arg]显然不能在上工作

this[arg] = args[arg]

功能按钮(参数){for(args中的arg){this[arg]=args[arg];}};

var按钮=新按钮({name:"我的按钮",value:"我的超特殊价值",颜色:"黑色",enabled:false});