Я разрабатываю lib в настоящее время, который опирается на arguments.callee.caller
. Это несовместимо с "use strict"
, поэтому он выдает ошибку, когда функция вызывающего абонента была определена в строгом режиме. Я поймаю эти ошибки, они не имеют большого значения, поскольку важная часть не определена в строгом режиме. Есть ли среда, которая поддерживает только строгий режим, и поэтому не совместима с этой библиотекой?Есть ли среда js, которая поддерживает только строгий режим?
1
A
ответ
1
Есть ли среда, которая поддерживает только строгий режим?
Вы можете настроить Node.js, чтобы сделать это, см Any way to force strict mode in node?:
node --use_strict
0
Любая современная среда JS всегда будет иметь строгий режим в контексте certain ES6 contexts. А именно:
- код модуля всегда строгий код режима.
- Все части a ClassDeclaration или ClassExpression - это строгий код режима.
Конечно, реальный ответ здесь не использовать arguments.callee.caller
, если вы хотите быть на будущее.
Но если вы хотите избежать ограничения строгого режима, вы можете напрямую получить доступ к Function.caller с именованными функциями. Это сильно обескураживает, так как это нестандартная функция.
Смежные вопросы
- 1. JS строгий режим: Почему (! Только) Край жалуются, назначая свойство стиля
- 2. Есть ли причина не использовать строгий режим в JavaScript?
- 3. Есть ли способ проверить, установлен ли строгий режим?
- 4. Включить строгий режим только в разработке
- 5. Строгий режим в PHP?
- 6. Babel Config «строгий режим»
- 7. Зафиксировать строгий режим ретроактивно
- 8. Есть ли какой-то «строгий режим производительности» для MySQL?
- 9. MySQL/MariaDB Строгий режим
- 10. Отключение MySQL Строгий режим
- 11. «строгий» режим для QML?
- 12. Строгий режим: альтернатива аргументу.callee.length?
- 13. Строгий режим сужений в Javascript
- 14. JavaScript: строгий режим и объекты
- 15. Поддерживает ли Visual C++ «строгий псевдоним»?
- 16. Есть ли что-то не так, если я использую или не использую строгий режим в JS?
- 17. Есть ли замена xdoclet, которая поддерживает дженерики?
- 18. MySQL не более строгий режим
- 19. Строгий режим и версии Javascript
- 20. Как отключить строгий режим при использовании Phantomjs
- 21. PHPUnit Строгий режим - Установщик() - Покрытие
- 22. Поддерживает ли сенсорный режим мультитач?
- 23. Есть ли язык, компилятор или среда выполнения, которая поддерживает неявное асинхронное программирование
- 24. Есть ли среда для .NET, которая поддерживает концепцию Erlang «мобильный код»?
- 25. Есть ли кросс-браузерная среда JavaScript, которая поддерживает старые браузеры, такие как IE 5?
- 26. Любой способ заставить строгий режим в узле?
- 27. Строгий режим и зарезервированное слово
- 28. включить строгий режим в Mysql
- 29. Есть ли какая-то среда программирования, которая работает на IPhone?
- 30. Есть ли среда C++, которая хорошо обрабатывает шаблоны?
Узел может быть вынужден выполнить весь код в строгом режиме с флагом командной строки, если это то, что вы хотите знать , – Bergi
Для чего вам нужен '.caller'? – Bergi
@Bergi Спасибо! Я хотел знать что-то подобное. :-) Я использую вызывающего абонента, чтобы сделать что-то вроде 'Error.captureStackTrace (o, fn)' в среде, отличной от v8: https://github.com/inf3rno/e3/blob/master/lib/stackAdapter/StackAdapter /non-v8/FrameStringSource.js#L16 Я тестирую в настоящее время для 'arguments.callee.caller', чтобы сделать изящную деградацию, но этот тест не поймает ошибку в строгом режиме. Мне нужно изменить это. – inf3rno