【发布时间】:2018-06-13 11:55:45
【问题描述】:
var Test = function () {
console.log("something");
}
我只想通过输入“new”来调用这个函数,即 new Test(); 以这种方式调用时应该抛出错误。测试();
【问题讨论】:
标签: javascript
var Test = function () {
console.log("something");
}
我只想通过输入“new”来调用这个函数,即 new Test(); 以这种方式调用时应该抛出错误。测试();
【问题讨论】:
标签: javascript
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
【讨论】: