首页  >  文章  >  web前端  >  “new.target”元属性如何促进 ES6 类继承?

“new.target”元属性如何促进 ES6 类继承?

Patricia Arquette
Patricia Arquette原创
2024-11-06 04:37:02497浏览

How does the

理解“new.target”

ECMAScript 2015 规范引入了一个称为“new.target”的元属性,该属性在非箭头函数来确定该函数是否作为构造函数调用。

定义和目的

“new.target”指的是第一个元属性,形式上是规范第 12.3.8 节中定义。它的唯一目的是检索函数的“[[NewTarget]]”内部值的当前值。该值在函数调用时设置,类似于“this”绑定。

根据§8.1.1.3函数环境记录,“[[NewTarget]]”值设置为“[[ Construct]]" newTarget 参数(如果该函数作为构造函数调用)。否则,它的值保持未定义状态。

ES6 类的重要性

“new.target”在 ES6 类的实现中起着至关重要的作用,允许它们继承内置对象。当使用“new”调用类构造函数时,“this”值尚未初始化。然而,当调用 super() 方法时,对象被创建并设置为继承自“newTarget”构造函数的“.prototype”。

示例

以下示例演示了如何在类继承中使用“new.target”:

在此示例中:

  • Parent 构造函数使用“new.target”来访问Child 构造函数。
  • Child 构造函数使用“new.target”来确定它是通过“new”调用的,即使 super() 调用是在“this”值初始化之前进行的。
  • 这允许子构造函数正确地继承父原型。

以上是“new.target”元属性如何促进 ES6 类继承?的详细内容。更多信息请关注PHP中文网其他相关文章!

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