首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在javascript的类中需要静态方法?

问为什么在javascript的类中需要静态方法?
EN

Stack Overflow用户
提问于 2020-10-23 01:31:57
回答 2查看 81关注 0票数 1

为什么我们需要在javascript的类中使用静态方法。

代码语言:javascript
复制
class Car {
  constructor(brand) {
    this.carname = brand;
  }
  static hello(x) {
    return "Hello " + x.carname;
  }
}

mycar = new Car("Ford");

document.getElementById("demo").innerHTML = Car.hello(mycar);

我知道,静态方法是直接在类上调用的(上面例子中的汽车)-而不是创建类的实例/对象(mycar)。但是在类JS中静态方法的/point有什么用呢?

EN

回答 2

Stack Overflow用户

发布于 2020-10-23 01:39:55

,以便能够在不创建类实例的情况下调用方法。

这样做有一些好处。要调用实例方法,您必须创建类的新实例,然后调用该方法(这是一个分两步完成的过程)。对于static方法,这不是必需的。

更多信息here

静态方法通常是实用函数,例如创建或克隆对象的函数,而静态属性对于缓存、固定配置或不需要跨实例复制的任何其他数据都很有用。

静态函数通常是引用透明的函数。引用透明函数是指不依赖实例状态即可正常运行的函数。这样的函数很容易推理,因为您不必考虑函数之外发生的任何事情,就可以理解它的作用。

票数 3
EN

Stack Overflow用户

发布于 2020-10-23 01:42:28

静态方法将方法提供给类的构造函数...而不是实例。这使得您可以调用ClassName.functionName(参数);实例将仍然具有此函数,但它使您可以在类而不是实例上调用函数。例如,这不起作用:

代码语言:javascript
复制
class jump
  doJump() {
    console.log(7);
  }
}
jump.doJump(); // Error
var jumper = new jump();
jumper.jump() // => 7

但这确实是:

代码语言:javascript
复制
class move {
  static doMove() {
    console.log("works");
  }
}
move.doMove();
var t = new Move()
t.doMove();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64487563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档