You can use new.target pseudo-property to detect whether a function was called as a constructor(using the new operator) or as a regular function call.
new.target
function Myfunc() { if (new.target) { console.log("called with new"); } else { console.log("not called with new"); } } new Myfunc(); // called with new Myfunc(); // not called with new Myfunc.call({}); // not called with new