KDOC 681: JavaScriptのクラスは関数なので定義したあとにプロパティを追加できる
この文書のステータス
- 作成
- 2026-10-17 貴島
- レビュー
- 2026-10-17 貴島
概要
JavaScriptのクラスは特別な関数で、関数はオブジェクトである。そのため、定義したあとのクラスにもふつうのオブジェクトと同じようにプロパティを追加できる。追加したプロパティはクラス自身に付き、 static で定義したものと同じくインスタンスからは見えない。
クラスは実際には「特別な関数」であり、(後略)
class MyClass {}
MyClass.key = "value";
console.log(typeof MyClass, MyClass.key);
console.log(new MyClass().key);
function value
undefined
typeof が function を返すのは、クラスが [[Call]] を持つオブジェクトだからである。
If val has a
[[Call]]internal slot, return “function”.
関連
なし。