【问题标题】:Are class methods supported in JavaScript?JavaScript 是否支持类方法?
【发布时间】:2012-12-11 15:32:09
【问题描述】:

当我阅读 JavaScript The Definitive Guide,第 9.3 节时,我遇到了这个:

类方法
这些是与类关联而不是与实例关联的方法。

如何在 JavaScript 中实现类方法?

【问题讨论】:

  • 如果“类”是指构造函数,那么是的,只需在构造函数上定义方法即可。
  • 那么,“类”这个词指的是什么?
  • @Šime Vidas:不在构造函数上,在构造函数原型上。
  • 可能是这个问题的重复:stackoverflow.com/questions/4305578/…
  • @RyanLynch 在构造函数原型上定义的方法不是类方法,而是实例方法。 OP 询问的是类方法,而不是实例方法。

标签: javascript


【解决方案1】:

你可以创建一个函数作为另一个函数的属性:

function MyClass() {
}

MyClass.someFunction = function() { };

【讨论】:

  • 由于 JavaScript 目前还没有真正的 OOP 模型,上面相当于静态或类方法,静态或类属性可以在类似的方式中定义 MyClass.someProperty = "myValue";类似地,实例方法是在对象的原型属性上定义的,所以 MyClass.prototype.someFunction = function() { };是一个实例方法和 MyClass.prototype.SomeProperty = "someValue";是一个实例属性。这些不是声明这些类型的函数和属性的唯一方法,您可以搜索面向对象的 JavaScript 以找到更多示例。
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 2012-06-23
  • 2013-04-12
  • 2011-11-12
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多