Показать сообщение отдельно
  #2 (permalink)  
Старый 06.05.2014, 19:43
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Такая конструкция воспринимается интерпретатором, как блок кода с меткой:
{
    label: 10
}
Скобки служат для группировки, инструкция может отсутствовать:
instruction {
   doSomething(); doSomethingElse()
}
Если без eval просто в скрипте написать:
{label1: 1, label: 2}
будет таже ошибка "SyntaxError: missing ; before statement".

Чтобы эта конструкция распознавалась как литерал объекта, она должна находиться в выражении, для этого достаточно обрамить код в скобки:
alert(typeof eval('({abc: 10})'))

alert(typeof eval('({abc: 10, bba: 20})'))

Последний раз редактировалось Octane, 06.05.2014 в 20:17.
Ответить с цитированием