首页  >  文章  >  web前端  >  什么是“new.target”以及它在 ES6 类中如何工作?

什么是“new.target”以及它在 ES6 类中如何工作?

Linda Hamilton
Linda Hamilton原创
2024-10-30 03:52:03664浏览

 What is

理解 ECMAScript 2015 中的“new.target”

在 ECMAScript 2015 规范中,介绍并简要介绍了关键字“new.target”提到了三遍。虽然 MDN 提供了一些上下文,但仍然有些模糊。

什么是“new.target”?

“new.target”是一个元属性,也称为新目标。它检索非箭头函数环境的 [[NewTarget]] 内部槽的当前值。当使用“new”关键字调用函数时会设置此值。

“new.target”的用途

其主要目的是确定函数是否被作为构造函数调用。此外,它在 ES6 类的实现中起着至关重要的作用。

ES6 类如何利用“new.target”

当通过“调用 ES6 类构造函数时” new X”,“this”值未初始化。该对象尚未创建。但是,该实例应继承自最初调用的构造函数的 .prototype。

“new.target”跟踪在 super() 调用期间接收“new”调用的“最外层”构造函数。 OrdinaryCreateFromConstructor 过程使用“new.target”而不是当前执行的构造函数来确保正确的继承。

示例:

在此示例中,“new .target”将在 Parent 构造函数中输出“Child”,表明它是使用“new”关键字调用的。

以上是什么是“new.target”以及它在 ES6 类中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn