Имена динамических переменных в Javascript - PullRequest
1 голос
/ 07 июля 2011

Я использую jQuery Impromptu приглашения в моем приложении, и они очень полезны.

Однако для вызова Impromptu вам необходимо указать имена кнопок и их возвращаемые значения, например:

$.prompt('Example 2',{ buttons: { Ok: true, Cancel: false } });

Мне бы очень хотелось иметь динамические названия кнопок, что-то вроде этого:

function showprompt(question, button1, button2) {
  $.prompt(question,{ buttons: { button1: true, button2: false } });
}

Но, похоже, это не работает, кнопки просто называются 'button1' и'button2'!

Я пытался использовать eval(button1) и ''+button1, но они вызывают синтаксические ошибки.

Есть предложения?

1 Ответ

8 голосов
/ 07 июля 2011

Поскольку имена свойств в литерале объекта могут быть идентификаторами (а не строками), для них нельзя использовать переменную.

Вам необходимо создать объект, а затем использовать нотацию в квадратных скобках для назначениязначения.

function showprompt(question, button1, button2) {
  var buttons = { };
  buttons[button1] = true;
  buttons[button2] = false;
  $.prompt(question,{ buttons: buttons });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...