Для функции:
function x(arg) { return 30; }
Вы можете назвать это двумя способами:
result = x(4);
result = new x(4);
Первый возвращает 30, второй возвращает объект.
Как вы можете определить, каким образом функция была вызвана внутри самой функции?
Независимо от вашего решения, он также должен работать со следующим вызовом:
var Z = new x();
Z.lolol = x;
Z.lolol();
Все решения, которые в настоящее время считают, что Z.lolol()
вызывает его как конструктор.