Javascript对象观看

时间:2014-12-12 11:45:32

标签: javascript

我在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

为什么呢?

2 个答案:

答案 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;
});