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