⛳
名前空間としてのクラス(=ステートレスオブジェクト)
クラスは様々な機能を持っていますが、
そのうちの1つに「名前空間」があります
名前空間については以下の記事をご確認ください
【ステートレスオブジェクト】
- クラスを名前空間として使うにはstaticが必要
- クラスをインスタンス化せずに、そのまま使える
- クラス内で定義されたデータはメンバ変数と呼ばれる
- クラス内で定義された関数はメソッドと呼ばれる
- メンバ変数とメソッドへのアクセスはメンバ演算子(.)を使う
- 名前空間.メンバ変数名
- 名前空間.メソッド名()
【クラス呼び出し箇所】
クラスを定義した行よりも、後ろの行にて呼び出す必要がある
クラスを定義した行よりも、前の行にて呼び出すとReferenceErrorとなる(変数と同じ)
後ろの行にて呼び出し
test.js
class Circle {
static PI = 3.14;
static perimeter(radius){
return 2 * Circle.PI * radius;
}
static area(radius){
return Circle.PI * radius * radius;
}
}
console.log(Circle.perimeter(4));
//25.12
前の行にて呼び出し
test.js
console.log(Circle.perimeter(4));
class Circle {
static PI = 3.14;
static perimeter(radius){
return 2 * Circle.PI * radius;
}
static area(radius){
return Circle.PI * radius * radius;
}
}
//ReferenceError: Cannot access 'Circle' before initialization
Discussion