GetterとSetterを使う。JavascriptのバージョンはES2015。
windowオブジェクトにプロパティを追加
例として、xというグローバル変数の値を監視する。プロパティの追加はObject.definePropertyを使う。
Object.defineProperty(window,'x', {
configurable: false,
val: undefined,
get: function () { return this.val; },
set: function (x) {
this.val = x;
console.log( x+' was assigned to x');
},
});
getterを定義し忘れると、値を参照できなくなるので注意。
代入時に任意の処理を行いたいときは、console.log( x+' was assigned to x'); 部分を書き換える。
処理
x = 1;
x = 2;
結果
1 was assigned to x
2 was assigned to x