Проблема с синтаксисом объекта Javascript - PullRequest
1 голос
/ 05 ноября 2011

Я явно ошибся (потому что он не работает), но я подумал, что следующие два кодовых блока функционально идентичны, но один работает должным образом, другой - нет.Рабочая:

mfObject.questions = {}
mfObject.questions.active = "#"+$('.ui-page-active').attr('id');

Не Рабочая:

mfObject.questions = {
    active : "#"+$('.ui-page-active').attr('id');
}

1 Ответ

3 голосов
/ 05 ноября 2011

У вас не должно быть ; в конце назначения свойства.

mfObject.questions = {
    active : "#"+$('.ui-page-active').attr('id') // <-- no semicolon here
}

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

// Correct property assignment in an object literal
mfObject.questions = {
  active: "someval",
  prop1: "someval1",
  prop2: "someval2",
  prop3: function() {
    console.log("I have semicolon terminators in a function");
    console.log("because I have multiple statements");
  },
  prop4: "someval4"
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...