Object.defineProperty()

(標準組み込みオブジェクト > Object > メソッド)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

Object.defineProperty(処理するオブジェクト, プロパティ名, 適用するプロパティディスクリプタ);

あるオブジェクトに新しいプロパティを直接定義したり、オブジェクトの既存のプロパティを変更したりして、そのオブジェクトを返す。

const object1 = {};
Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: false, // 該当のプロパティはreadonlyになる
  enumerable: false, // 該当のプロパティをループ(for文やObject.keys()を利用すること)させることができない
  configurable: true // 該当のプロパティを再定義することができる
});
object1.property1 = 77;
// Throws an error in strict mode console.log(object1.property1);
// Expected output: 42
inserted by FC2 system