#静的プロパティ/メソッドとは
静的プロパティ/静的メソッドとは、「インスタンスを生成しなくてもオブジェクトから直接呼び出せるプロパティ/メソッド」のことである。これに対して、インスタンスを呼び出して、インスタンス経由で呼び出すプロパティ/メソッドのことをインスタンスプロパティ/インスタンスメソッドという。
オブジェクト名.プロパティ名 = 値
オブジェクト名.メソッド名 = function()
または
class Math {
static getPluss(a, b){
return a + b
}
}
のように定義する。
##静的プロパティ/メソッドを定義するときの注意点
###静的プロパティは、基本的に読み取り専用の用途で使う。
静的プロパティはインスタンスごとの値ではなくクラスごとの値であるため、基本的に変更すべき値ではない。よって、静的プロパティは読み取り専用の用途で使う。
###静的メソッドのなかで、thisキーワードは使えない
thisキーワードはインスタンス自身を表すため、クラス単位ごとのメソッドである静的メソッドではthisキーワードは使えない、というよりも使っても意味がない。
#なぜ静的メンバーをつかうのか
静的プロパティ/静的メソッドは機能的にはグローバルプロパティ/グローバルメソッドとは何ら変わりません。ではなぜ静的プロパティ/静的メソッドを使うのかというと、「名前の競合」を回避するためです。
クラスごとのプロパティ/メソッドである静的プロパティ/静的メソッドを使えば、たくさんのライブラリを使う開発であっても機能ごとにグローバルオブジェクトのように使えるので、大変勝手が良い。
よって、グローバル変数/関数は出来るだけ減らし、静的プロパティ/静的メソッドに情報をまとめるのが好ましい。