0

我有这样的代码。

var myI18n; // json : "{"close":"بستن","locationInformation":"مشخصات جغرافیایی","yes":"بله","no":"خیر"}"

我想用这样的东西。

$.modal({
    buttons: {
        myI18n.close: function(win) {

        }
    }
});

但我有一个语法错误。也用这个方法字符串不会改变。

var aaa = myI18n.close;
$.modal({
    buttons: {
        aaa: function(win) {

        }
    }
});
4

3 回答 3

2

将具有动态名称的属性分配给对象的唯一方法是使用数组语法

 var myButtons = {};
 myButtons[myi18n.close] = ...
于 2012-06-05T17:07:14.383 回答
2

您不能在对象字面量的键名中引用变量,因此您需要先创建对象,使用常规[]符号填充它,然后在$.modal.

buttons = {}

buttons[myI18n.close] = function(win) {
   // ....
}

$.modal({
    buttons: buttons
});
于 2012-06-05T17:08:27.507 回答
1

您不能直接将对象文字与变量键一起使用。您需要分离出您的代码以使用数组访问语法 ( obj[keyname] = value)。

var obj = {
        buttons: {}
    };
obj.buttons[myI18n.close] = function () {...};
$.modal(obj);

或者,您可以使用模块模式:

$.modal({
    buttons: (function () {
        var btns = {};
        btns[myI18n.close] = function () {...};
        return btns;
    }())
});
于 2012-06-05T17:08:53.077 回答