Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 观看活动_Javascript_Watch - Fatal编程技术网

Javascript 观看活动

Javascript 观看活动,javascript,watch,Javascript,Watch,在javascript中,我知道我们可以监视属性的变化,但是可以监视函数吗 如果我有一个计算结果为boolen的函数 function eval(value) { return value == 1; } 是否有可能持续评估此函数,直到其为真 我知道setTimeout可以工作,但这看起来像是一个黑客。有更好的方法吗?有两种可能的方法,第一种是你的,设置超时。第二个是设置间隔: var checkEval = setInterval(function(){eval(value)},10

在javascript中,我知道我们可以监视属性的变化,但是可以监视函数吗

如果我有一个计算结果为boolen的函数

function eval(value) {
    return value == 1;
}
是否有可能持续评估此函数,直到其为真


我知道setTimeout可以工作,但这看起来像是一个黑客。有更好的方法吗?

有两种可能的方法,第一种是你的,设置超时。第二个是设置间隔:

var checkEval = setInterval(function(){eval(value)},1000);
您可以使用以下方法结束它:

clearInterval(checkEval);

用包装器替换函数

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);

这是唯一的方法“…可以观看功能?”观看它做什么?您是否希望函数或其返回值发生更改?(例如,因为它的返回值是基于它关闭的东西。)不确定你所说的手表是什么意思,也许你应该更具体一些或者提供一个用例。有类似angular和knockout的框架用于“监视”函数/变量值。您还可以查看函数部分。这可能会有帮助。你认为什么是“持续的”?无限循环可能无法工作…请更改函数名!我想这会引起歧义