2015-09-16 2 views
2

Наконец, классы es6 приземлились в Node.js v4.0.0. Но функции необходимо передать --use_strict. напримерПоддержка класса Node.js es6

node --use_strict sampleClass.js 

Что означает этот параметр --use_strict? Имеет ли это какое-либо отношение к «строгому использованию»; javascript директива.

Примечание: На Linux-работал в v0.12 тоже, но не в Windows,

Edit: Если вы хотите опустить --use_strict флаг, чем использовать "use strict"; в JS файл

+0

Я использовал 'class' без флагов – intekhab

+0

@intekhab Узел запускает что-то, называемое« магическим режимом », где он улавливает синтаксические ошибки в REPL и пытается оценить их в строгом режиме. –

ответ

3

Ну, JS имеет a strict mode, который немного меняет порядок работы, а также другие мелочи. Как правило, это должно быть предпочтительным, так как тела классов и модулей всегда находятся в строгом режиме.

Занятия работают как в строгом, так и в свободном режимах. Однако JavaScript-движок Node запускает только поддержку запущенных классов в строгом режиме на данный момент.

Это ограничение V8 (двигатель) и будет разрешено в будущем. Here is the bug tracking it.

+0

, поэтому вы имеете в виду --use_strict flag force "use strict"; в коде, даже если «использовать строгий»; явно не упоминается –

+0

@adnankamili да, это именно то, что он делает. –

+1

https://github.com/nodejs/node/blob/64beab0fc55f750bae648e9b69e027f2dbf3b18a/deps/v8/src/flag-definitions.h#L171 –