Есть идеи, как внутри F различать способы вызова?
function F() {}
new F;
F.call(new F);
F();
обычно делаю так
function F() {
if (this.constructor == F) {
return 1;
}
return 2;
}
Но понадобилось отделить вариант с
F.call(obj)
, и вот когда obj - это объект, созданный с помощью F, такая проверка не подходит. Нужно отделить способы запуска [[Construct]] и [[Call]].