脚本:Class.method vs. Class.prototype.method

阅读时长 3 分钟读完

在 JavaScript 中,我们可以通过构造函数创建对象,并给它们添加属性和方法。但是,当涉及到给一个类添加方法时,有两种常见的方式:Class.methodClass.prototype.method。它们之间有什么区别?我们应该何时使用哪一种?

Class.method

当你使用 Class.method 时,你向类对象本身添加了一个静态方法。这意味着该方法只能使用类名来调用,而不能通过类实例来调用。

以下是一个示例:

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

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

Class.prototype.method

当你使用 Class.prototype.method 时,你向类的原型添加了一个方法。这意味着该方法可以通过类的实例来调用。

以下是一个示例:

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

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

使用建议

  • 如果需要在多个实例之间共享某个方法,那么应该使用 Class.prototype.method,因为在这种情况下,每个实例将共享同一个方法实现,而不是每个实例都有自己的一份。
  • 如果方法与类本身相关,并且不依赖于类的实例状态,则应使用 Class.method。例如,在定义工具库函数时,通常会使用静态方法。

总结

Class.methodClass.prototype.method 之间的区别在于它们添加的方法类型不同。前者是静态方法,后者是原型方法。我们应该根据需要来选择适当的方式添加方法。

希望这篇文章能够帮助你更好地理解 JavaScript 中的类方法。如果你还有任何问题或建议,请随时在评论区留言。

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

纠错
反馈