Javascript中的动态变量名称

cus*_*ar9 1 javascript jquery impromptu

我在我的应用程序中使用jQuery Impromptu提示,它们非常有用.

但是,要调用Impromptu提示,您需要指定按钮名称及其返回值,如下所示:

$.prompt('Example 2',{ buttons: { Ok: true, Cancel: false } });
Run Code Online (Sandbox Code Playgroud)

我真的想拥有动态按钮名称,如下所示:

function showprompt(question, button1, button2) {
  $.prompt(question,{ buttons: { button1: true, button2: false } });
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,按钮只是被称为'button1'和'button2'!

我已经尝试使用eval(button1)''+button1,但他们带来了语法错误.

有什么建议?

Que*_*tin 8

由于对象文字中的属性名称可以是标识符(而不是字符串),因此不能为它们使用变量.

您必须创建对象,然后使用方括号表示法来分配值.

function showprompt(question, button1, button2) {
  var buttons = { };
  buttons[button1] = true;
  buttons[button2] = false;
  $.prompt(question,{ buttons: buttons });
}
Run Code Online (Sandbox Code Playgroud)