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