var Test = function () {
console.log("something");
}
I want to call this function only by putting "new" i.e new Test(); It should throw error when called in this way. Test();
var Test = function () {
console.log("something");
}
I want to call this function only by putting "new" i.e new Test(); It should throw error when called in this way. Test();
The new.target property lets you detect whether a function or constructor was called using the new operator. In constructors and functions instantiated with the new operator, new.target returns a reference to the constructor or function. In normal function calls, new.target is undefined. (shamelessly copied from MDN)
var Test = function () {
if (!new.target) throw 'Test() must be called with new';
console.log("something");
}
ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target