gpt4 book ai didi

javascript - 只能通过new关键字调用的JS函数

转载 作者:行者123 更新时间:2023-11-28 14:31:49 26 4
gpt4 key购买 nike

我们可以在javascript中创建一个只能通过new关键字调用的函数吗?有人问我如何在javascript中引入这样的限制以及有什么用途。

如果有人也能回答此限制的使用情况,我将不胜感激。

最佳答案

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"
}

这在接下来的情况下可能会有所帮助:

  1. 当调用函数 Foo() 时,将隐式创建新对象实例,但使用 new 关键字 - 它是显式的。由于结果代码更易于阅读/使用/维护等。

  2. 当您需要在创建新对象实例期间执行一些特定的操作时(仅一次且仅在创建期间)。

  3. 当您需要执行所有 5 steps 时哪个 new 关键字在后台执行,哪个简单函数调用不会执行。

关于javascript - 只能通过new关键字调用的JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51155476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com