如何检测对象变量是否已更改?

Jak*_*der 6 javascript

我有一个代表栅栏的类,它在内部由矩形和圆形标记对象(也是我的类)组成.围栏有4个变量 - x1,x2,y1和y2.如果有任何这些更改,我必须修改或重建内部标记对象.

存储和检查4个值并不是什么大问题,但这只是我的第一个世界对象类,并且会有更长的变量列表.有没有什么好方法可以检查是否有任何更改或触发更改的内容而不显式存储双值并在每次重绘画布时进行检查?像vb.net中的属性那样的东西?

KJ *_*ice 4

var fence= {
   set x1(){
      alert('change');
      this.rebuild();
   },
   rebuild: function(){}
}
Run Code Online (Sandbox Code Playgroud)

function Fence(val){
    var value = val;

    this.__defineGetter__("x1", function(){
        return value;
    });

    this.__defineSetter__("x1", function(val){
        alert('change');
        this.rebuild();
    });
    this.rebuild = function(){};
}
var fence = new Fence();
Run Code Online (Sandbox Code Playgroud)