Сообщение от voraa
|
В первом правиле говорится про токен-нарушитель. Тоесть нечто такое, что делает синтаксическую конструкцию недопустимой.
Но конструкция }[ - вполне допустима
Array.prototype.sum = function (...arguments){returnthis.reduce(arguments);}[1,2,3]
Мы описали какую то функцию. Функция - это объект. К объекту применима операция [] для получения свойства по имени.
[1,2,3] - тут используется операция ',', которая дает значение последнего из выражений (3)
Т.е приведенный выше пример пытается взять значение свойства с именем '3' у объекта функции. Такого нет, поэтому undefined/
|
Спасибо большое! Офигеть, конечно. Никогда бы не подумал, что это работает именно так.
Почему все тогда почти никогда не ставят точки с запятой после декларации функций? Эта ситуация настолько редкая? Почти все пишут так:
function foo(){
return 3;
}
без точки с запятой после закрывающей фигурной скобки.