在 ES10 中正确使用 new.target 进行类构造函数验证

阅读时长 2 分钟读完

在 ES10 中,引入了 new.target 关键字,它可以用于在类构造函数中验证该类是否被正确地使用。在本文中,我们将讨论如何使用 new.target 进行类构造函数验证,并提供示例代码。

什么是 new.target?

new.target 是一个在构造函数中特别有用的关键字,它指向正在被构造的对象。当使用 new 关键字创建一个新的实例时,new.target 将指向该实例的构造函数。如果构造函数是通过继承创建的,则 new.target 将指向子类的构造函数。

为什么使用 new.target 进行类构造函数验证?

在 JavaScript 中,使用 new 关键字创建一个实例时,如果忘记使用 new 关键字,则该实例将不会被正确地创建。这将导致错误的行为和不可预测的结果。使用 new.target 可以帮助我们防止这种情况发生,从而确保类被正确地使用。

如何使用 new.target 进行类构造函数验证?

我们可以在类的构造函数中使用 new.target 来验证该类是否被正确地使用。如果构造函数不是通过 new 关键字调用的,则 new.target 将为 undefined。我们可以使用这个特性来抛出一个错误,从而防止实例被错误地创建。

下面是一个示例代码,其中使用 new.target 验证了一个类的构造函数是否被正确地调用:

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

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

在这个示例中,当 MyClass 的构造函数被正确地调用时,它将创建一个新的实例。如果构造函数不是通过 new 关键字调用的,则 new.target 将为 undefined,并抛出一个错误。

结论

在 ES10 中,new.target 关键字可以用于在类构造函数中验证该类是否被正确地使用。通过使用 new.target,我们可以防止实例被错误地创建,从而确保类被正确地使用。在编写类时,应该始终使用 new.target 进行类构造函数验证,以确保代码的正确性和可靠性。

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

纠错
反馈