我使用javascript。假设我的应用程序具有以下功能:



function verify(cats) {
  if ( cats > 20 ) {
    // do something
  }
}


假设我有一个添加猫的按钮,那么每次添加猫后我都可以使用该功能。
但是,我不喜欢这种方法。

我希望此功能在后台运行,并且在条件为true时自动执行

有办法吗?

最佳答案

使用setter,它在每个作业上运行。之前:

var obj = {};
obj.cats = 10;
obj.cats += 30;
verify(obj.cats); // we don't want to call this each time.


后:

var obj = {
    _cats : 0, // private
    get cats() { return this._cats; },
    set cats(num) {
        verify(num); // any verification here
        this._cats = num;
    }
};


稍后,您可以执行以下操作:

obj.cats += 10; // will run verification
obj.cats = 15; // same


另外,您可以使用代理,但是JS引擎尚未真正支持它们。

关于javascript - 后台功能javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32741865/

10-11 14:08