【问题标题】:Dynamical adding of parameters as properties of object - JavaScript动态添加参数作为对象的属性 - JavaScript
【发布时间】:2012-03-20 20:18:06
【问题描述】:

我有一个构造函数,可以用来实例化一个新的 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} 将动态创建一个带有值为 true 的测试属性的按钮。

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

【问题讨论】:

    标签: javascript arrays object properties arguments


    【解决方案1】:

    this.arg = args[arg] 显然行不通

    this[arg] = args[arg]
    

    【讨论】:

    • 谢谢!这么简单的答案让我有点尴尬。
    • @Rick Hoving 你不要尴尬,你不是唯一遇到这个问题的人哈哈 ;)
    【解决方案2】:

    这个

    功能按钮(args){ 对于(args中的args){ 这[arg] = args[arg]; } };

    var button = new Button({ name:"我的按钮", value:"我的超特别值", 颜色:黑色”, 启用:假 });

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 2014-05-29
      • 2019-11-14
      • 1970-01-01
      • 2015-03-01
      • 2016-04-09
      • 1970-01-01
      • 2016-05-04
      • 2016-07-31
      相关资源
      最近更新 更多