我在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
为什么呢?
答案 0 :(得分:2)
您需要从watch
回调中返回新值。更新您的处理程序:
Obj.watch('prop', function(prop, oldv, newv) {
...
return newv;
})
答案 1 :(得分:1)
您需要从回调中返回新值:
Obj.watch('prop', function(prop, oldv, newv) {
console.log(prop);
console.log(oldv);
console.log(newv);
return newv;
});