potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

JavaScript クラスのインスタンスからクラスのオブジェクトを取得する

インスタンスconstructorプロパティでクラスのオブジェクトを取得できます。このオブジェクトを操作すればクラスのオブジェクトプロパティを操作できます。

class Class1
{
    static X = 123;
}

const a = new Class1();

console.log(a.constructor.X)
//-> 123

a.constructor.X = 456;
console.log(a.constructor.X)
//-> 456

蛇足

  • 現在のECMAScriptにはクラスか否かを判別する簡単な方法はないようです。
  • static {...}の中ではthisでクラスを参照できるそうです。

参考