从对象外部向选项对象添加选项 - javascript

时间:2016-01-19 08:51:12

标签: javascript javascript-objects

我试图为插件添加一些自定义。它有一个选项对象(或者它可能被称为哈希对象?)我想从数组中添加更多选项。

这是选项对象' itemKeys'

   a.extend(a.zEditor.DEFAULTS, {
        itemKeys: {

            "text name 1": "font-size: 15px; color: black;",
            "text name 2": "font-size: 15px; color: black;"
        }

我可以手动将密钥名称添加为数组值

key_name = ["text name 1", "text name 2"]

   a.extend(a.zEditor.DEFAULTS, {
        itemKeys: {

            [key_name[0]]: "font-size: 15px; color: black;",
            [key_name[1]]: "font-size: 15px; color: black;"
        }

但是数组中的值会有所不同,因此无法通过这种方式手动设置它。

在对象内部如此循环显然无法正常工作

itemKeys: {
       for (var i = 0; i < key_name.Length; i++) {
            key_name[i]: "font-size: 15px; color: black;",
           }
        }

所以现在我离开了在对象之外做了一些循环,为选项对象添加了新的选项。问题是我不知道如何从对象外部向选项对象添加新选项。

我试过

itemKeys:{&#34;文字名3&#34;:&#34;字体大小:15px;颜色:黑色;&#34; }

但是这只是覆盖了对象所以它现在只有一个选项。

我无法更改插件中的任何其他编码,因为它会导致其他事情中断,所以我不会这样做。

如何从对象外部向itemKey选项对象添加更多选项。

2 个答案:

答案 0 :(得分:1)

a.zEditor.DEFAULTS.itemKeys["text name 3"] = "font-size: 15px; color: black;";

或者,假设a.extend()的作用类似于jquery&#39; s $.extend()

a.extend(a.zEditor.DEFAULTS.itemKeys, {"text name 3": "font-size: 15px; color: black;"});

答案 1 :(得分:0)

您可以在外部组合单独的项目键对象,并通过引用进行分配。

var myItemKeys = {};

function() {

    for (var i = 0; i < key_name.Length; i++) {
          myItemKeys[key_name[i]] = "font-size: 15px; color: black;";
    }

}

//Set the itemKeys in the object

a.extend(a.zEditor.DEFAULTS, {
    itemKeys: myItemKeys
...