ES12 中语句 new.target

阅读时长 2 分钟读完

在 ES12 中,新加入了语句 new.target,其作用是返回当前实例化函数的函数对象,用于判断是否使用 new 关键字。

用途

在一些场合下,我们需要判断当前函数是否使用了 new 关键字。比如,我们希望保证构造函数只能通过 new 进行实例化,如果不使用 new 关键字,就会抛出错误。

此时,如果我们直接调用 MyConstructor(),就会抛出错误,提示必须使用 new 关键字进行实例化。

示例代码

-- -------------------- ---- -------
----- ------ -
  ------------- -
    -----------------------------
  -
-

----- --- ------- ------ -
  ------------- -
    --------
  -
-

--- - - --- --------- -- ------
--- - - --- ------    -- ---

在上述示例代码中,new.target 返回的是当前类的构造函数对象,我们可以通过 name 属性输出类名,这就是 new.target 的一个用途。

指导意义

new.target 的使用可以提高代码的可读性和可维护性,尤其在构造函数中使用非常方便。使用 new.target 可以很容易地判断是否使用了 new 关键字,从而避免一些潜在的问题和错误。

需要注意的是,new.target 语句不能在普通函数内部使用,只能在构造函数、静态方法和类的原型方法中使用。

总结

本文详细介绍了 ES12 中的新语句 new.target,包括其用途、示例代码和指导意义。使用 new.target 可以提高代码的可读性和可维护性,尤其在构造函数中使用非常方便。需要注意的是,new.target 语句不能在普通函数内部使用,只能在构造函数、静态方法和类的原型方法中使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65a28567add4f0e0ffaa55ea

纠错
反馈