JS スタティックメソッド
1. スタティックメソッドの基本
スタティッククラスメソッド(Static class methods)は、クラス自体に対して定義されるメソッドです。
スタティックメソッドをオブジェクト(インスタンス)から呼び出すことはできません。呼び出しはクラスからのみ可能です。
class Car {
constructor(name) {
this.name = name;
}
static hello() {
return "こんにちは!!";
}
}
const myCar = new Car("Ford");
// hello() は Car クラスから呼び出すことができます:
document.getElementById("demo").innerHTML = Car.hello();
// しかし、Car オブジェクト(インスタンス)からは呼び出せません:
// document.getElementById("demo").innerHTML = myCar.hello();
// これを実行するとエラーが発生します。2. スタティックメソッドへのオブジェクトの受け渡し
スタティックメソッドの内部で myCar オブジェクトの情報を使用したい場合は、そのオブジェクトを引数(パラメータ)として渡すことができます。
class Car {
constructor(name) {
this.name = name;
}
static hello(x) {
return "こんにちは " + x.name;
}
}
const myCar = new Car("Ford");
// myCar オブジェクトをスタティックメソッドに渡して呼び出します
document.getElementById("demo").innerHTML = Car.hello(myCar);