为什么我们需要在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有什么用呢?
发布于 2020-10-23 01:39:55
,以便能够在不创建类实例的情况下调用方法。
这样做有一些好处。要调用实例方法,您必须创建类的新实例,然后调用该方法(这是一个分两步完成的过程)。对于static方法,这不是必需的。
更多信息here
静态方法通常是实用函数,例如创建或克隆对象的函数,而静态属性对于缓存、固定配置或不需要跨实例复制的任何其他数据都很有用。
静态函数通常是引用透明的函数。引用透明函数是指不依赖实例状态即可正常运行的函数。这样的函数很容易推理,因为您不必考虑函数之外发生的任何事情,就可以理解它的作用。
发布于 2020-10-23 01:42:28
静态方法将方法提供给类的构造函数...而不是实例。这使得您可以调用ClassName.functionName(参数);实例将仍然具有此函数,但它使您可以在类而不是实例上调用函数。例如,这不起作用:
class jump
doJump() {
console.log(7);
}
}
jump.doJump(); // Error
var jumper = new jump();
jumper.jump() // => 7但这确实是:
class move {
static doMove() {
console.log("works");
}
}
move.doMove();
var t = new Move()
t.doMove();https://stackoverflow.com/questions/64487563
复制相似问题