理解 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中文网其他相关文章!