Строгий режим альтернативы этому экземпляру аргументов .callee
Там есть старый трюк (который я узнал на SO), чтобы вызвать вызов конструктора как функции, т.е. забыть ключевое слово new
. Следующее, или что-то вроде этого, происходит в каждом конструкторе вверху.
if (!(this instanceof arguments.callee)) {
throw Error("Constructor called as a function");
}
Каковы альтернативы, когда вам нужно "use strict";
?
Можно ли сохранить его общий характер? Или нам нужно использовать имя конструктора вместо arguments.callee
?
Ответы
Ответ 1
arguments.callee
сам устарел в пользу названных функциональных выражений. Хотя я не всегда согласен с этим шагом, это то, как все продвигалось. Таким образом, замена arguments.callee
на имя функции является единственным способом в строгом режиме, а также предпочтительным способом в нестрогом режиме.