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

Строгий режим альтернативы этому экземпляру аргументов .callee

Там есть старый трюк (который я узнал на SO), чтобы вызвать вызов конструктора как функции, т.е. забыть ключевое слово new. Следующее, или что-то вроде этого, происходит в каждом конструкторе вверху.

if (!(this instanceof arguments.callee)) {
    throw Error("Constructor called as a function");
}

Каковы альтернативы, когда вам нужно "use strict";?

Можно ли сохранить его общий характер? Или нам нужно использовать имя конструктора вместо arguments.callee?

4b9b3361

Ответ 1

arguments.callee сам устарел в пользу названных функциональных выражений. Хотя я не всегда согласен с этим шагом, это то, как все продвигалось. Таким образом, замена arguments.callee на имя функции является единственным способом в строгом режиме, а также предпочтительным способом в нестрогом режиме.