我使用下一个代码来监视javascript对象中的更改:https://gist.github.com/eligrey/384583
我有下一个用于检查更新的代码:
var Obj = {
prop: 0,
inc: function() {
this.prop ++;
}
};
Obj.watch('prop', function(prop, oldv, newv) {
console.log(prop);
console.log(oldv);
console.log(newv);
});
单击按钮时,我递增prop
:
$("#btn").on('click', function() {
Obj.inc();
});
当我运行此代码并单击按钮时,我进入控制台:
prop
0
1
没错。
但是,当我下次单击时,我得到:
z
undefined
NaN
在线演示:http://jsbin.com/jenarapufo/2/edit?html,js,console,output
为什么?
您需要
从回调中返回新值watch
。更新您的处理程序:
Obj.watch('prop', function(prop, oldv, newv) {
...
return newv;
})
您需要从回调中返回新值:
Obj.watch('prop', function(prop, oldv, newv) {
console.log(prop);
console.log(oldv);
console.log(newv);
return newv;
});