将函数限制为仅使用运算符调用"new"函数


var Test = function () {
console.log("something");
}

我只想通过输入"新"即新 Test(( 来调用这个函数; 以这种方式调用时,它应该会引发错误。测试((;

new.target属性允许您检测是否使用new运算符调用了函数或构造函数。在使用 new 运算符实例化的构造函数和函数中,new.target返回对构造函数或函数的引用。在正常的函数调用中,new.target是未定义的。(无耻地复制自MDN(

var Test = function () {
if (!new.target) throw 'Test() must be called with new';
console.log("something");
}

参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target

最新更新