Подтвердить что ты не робот

Перевернутые круглые скобки в Javascript

Что такое Javascript, который позволяет мне использовать обратные/обратные круглые скобки в вызовах функций, подобных этому? Я запускаю консоль Node в CLI; в частности Node версия 0.10.25.

function a(){ return 42 }
a() // -> 42
a)( // -> 42.  WTF?

function b(t){ return t }
b(4) // -> 4
b)4( // No function evaluation; presumably dangling parentheses
b)(4 // -> 4.  WTF?

Приложение: Это не работает в Chrome 33.0.1750.152, Safari 7.0.2 или Firefox 27.01. Действительно ли это какая-то "особенность" некоторой интерпретации ECMAScript или особенности Node? Если Node использует V8, не должен ли он соответствовать результатам Chrome?

4b9b3361

Ответ 1

Возможно, что консоль обертывает все внутри выражения eval: что на самом деле оценивается, возможно, eval (a)(). В этом случае Chrome также возвращает 42.