Javascript JS函数,只能通过新关键字调用
我们可以在javascript中创建一个只能通过new关键字调用的函数吗?有人问我如何在javascript中引入这样的限制以及它的用途 如果有人能回答此限制的使用问题,我们将不胜感激。实际上是Javascript JS函数,只能通过新关键字调用,javascript,object,Javascript,Object,我们可以在javascript中创建一个只能通过new关键字调用的函数吗?有人问我如何在javascript中引入这样的限制以及它的用途 如果有人能回答此限制的使用问题,我们将不胜感激。实际上是特殊功能 类需要使用new运算符来创建新实例,因此在不使用new运算符的情况下调用类会导致错误,因为类构造函数需要创建新实例。实际上是特殊函数 类需要使用新运算符来创建新实例,因此在没有新运算符的情况下调用类会导致错误,类构造函数需要创建新实例。使用new.target属性可以检测是否使用new运算符调用
特殊功能
类需要使用new运算符来创建新实例,因此在不使用new运算符的情况下调用类会导致错误,因为类构造函数需要创建新实例。实际上是特殊函数
类需要使用新运算符来创建新实例,因此在没有新运算符的情况下调用类会导致错误,类构造函数需要创建新实例。使用new.target
属性可以检测是否使用new
运算符调用了函数或构造函数:
function Foo() {
if (!new.target) throw 'Foo() must be called with new';
}
try {
Foo();
} catch(e) {
console.log(e);
// expected output: "Foo() must be called with new"
}
在接下来的情况下,这可能会有所帮助:
调用函数Foo()
时,隐式地创建新的对象实例,但使用new
关键字-这是显式的。因此,代码更易于阅读/使用/维护/等等
当您需要在创建新对象实例期间执行某些特定操作时(仅在创建期间执行一次)
当您需要执行所有new
关键字在引擎盖下执行的操作,以及哪些简单函数调用不会执行的操作时
new.target
属性用于检测是否使用new
运算符调用了函数或构造函数:
function Foo() {
if (!new.target) throw 'Foo() must be called with new';
}
try {
Foo();
} catch(e) {
console.log(e);
// expected output: "Foo() must be called with new"
}
在接下来的情况下,这可能会有所帮助:
调用函数Foo()
时,隐式地创建新的对象实例,但使用new
关键字-这是显式的。因此,代码更易于阅读/使用/维护/等等
当您需要在创建新对象实例期间执行某些特定操作时(仅在创建期间执行一次)
当您需要执行所有new
关键字在引擎盖下执行的操作,以及哪些简单函数调用不会执行的操作时
一个小小的研究会有很大的帮助,所以请使用堆栈溢出来寻求帮助,但老实说,这里感觉你有点懒。用谷歌搜索东西真的没那么难。一个小小的研究会有很大的帮助,所以请使用堆栈溢出来寻求帮助,但老实说,你在这里感觉有点懒。用谷歌搜索东西其实并不难。如果能更多地解释什么是新的.target
以及它是如何工作的,这个答案会更好…@MikeMcCaughan Done!)谢谢你的回答,但是如果这个限制有什么用呢function@jiten完成!))如果能更多地解释什么是新的.target
以及它是如何工作的,这个答案会更好…@MikeMcCaughan Done!)谢谢你的回答,但是如果这个限制有什么用呢function@jiten完成!))