我正在从事一个非常简单的项目,如果它更大,我将使用角或骨干或其他一些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,并且效果很好。