看功能

时间:2014-04-07 13:53:23

标签: javascript watch

在javascript中我知道我们可以观察属性更改,但可以观看功能吗?

如果我有一个评估为boolen的函数

function eval(value) {
    return value == 1;
}

是否可以连续评估此功能直到真实?

我知道setTimeout可以工作,但这似乎是一个黑客。还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

有两种主要的可能方式,第一种是你的,setTimeout。第二个是setInterval:

var checkEval = setInterval(function(){eval(value)},1000);

你可以使用:

结束它
clearInterval(checkEval);

答案 1 :(得分:0)

用包装器替换该功能

function something(){
   return value==1;
}

(function(window){
  var oldSomething = window.something;
  window.something = function(){
     var result = oldSomething.apply(null,arguments);
     if(result===true){
        //do what you need
     } 
     return result;
  };
})(window);