Javascript 静态方法与实例方法

6 javascript

所以我是 javascript(或任何编程语言)的新手,随着我的进步,我听到了新的关键字。

我在 Stackoverflow 上遇到了这个问题:How to access a method from a class from another class?

回复或回答者写了这样的东西..

如果是静态方法(不使用任何实例数据),则将其声明为静态方法,您可以直接调用它。

如果它是一个实例方法,那么您通常会创建一个类型为 one 的对象,然后在该对象上调用该方法(通常在构造函数中)。

有人可以用例子解释静态方法和实例方法之间的区别吗?我们如何在javascript中调用静态和实例方法

Héc*_*tor 8

这个答案不是针对 Javascript,而是针对一般的 OOP。

想象一下,你有一个班级Person。该类的一个实例可以是daniel.

实例方法

你可以在 上调用一个方法daniel,例如:daniel.talk(),所以daniel开始说话......

静态方法

你可以调用静态方法的类Person,而不是在一个具体的实例,例如:Person.getPeopleFromNewYork()。请注意,这getPeopleFromNewYork与任何实例无关,Person而与类本身有关。

(通常,像getPeopleFromNewYork()这样的方法属于某种存储库,但这仅用于示例。)

理解静态方法的另一个说明性示例是Math.sum(2, 5)Random.randomInt()


sbp*_*sbp 1

对于 Javascript 的具体答案,请访问此链接(我通过谷歌搜索找到它)看起来不错。

但无论您选择哪种面向对象编程语言;通常,您会使用静态方法来实现不需要知道类的其他字段/属性状态的功能。例如,将一种长度单位转换为另一种长度单位不需要知道该对象的其他属性是什么。另一方面,假设我们有一个具有名字和姓氏属性的 Customer 类。现在,如果您需要通过连接名字和姓氏来派生全名,您可以在类 GetFullName() 上创建一个方法,该方法不接受参数并为您完成这项工作。因此,在 Customer 类型的对象上,您可以使用不带任何参数的 object.GetFullName() 来获取全名。当然,您可以出于相同目的编写静态方法,但随后必须将参数传递给该方法。对于依赖大量参数的方法来说,这会很麻烦。