每当在JavaScript中更改数据结构时,触发功能



我正在从事一个非常简单的项目,如果它更大,我将使用角或骨干或其他一些MVC库。就我而言,每当更改数组/对象时,我只需要触发功能即可。最简单的方法是什么?

这是一种使用getter/setter监视对象属性的简单有效方法:

var myObj={a:1, b:2, c:3};
function watch(obj, prop, callBack){
   var x=obj[prop];
   Object.defineProperty(
      obj, prop, 
      {get:function(){return x;},
      set:function(n){ callBack(n,x); x=n; }
   }) ;
}
watch(myObj, "b", function(n,x){
   alert("was:"+x+", now " + n);
});
myObj.b=123; // shows: "was 2, now 123"

我已经在这个概念和胡须上建立了一个简单的MVC,并且效果很好。

最新更新