0
在javascript中,我知道我们可以观察属性更改,但可以观看函数吗?看着一个函数
如果我有这样的计算结果为boolen功能
function eval(value) {
return value == 1;
}
这将有可能持续评估这个功能直到真的吗?
我知道setTimeout可以工作,但这似乎是一个黑客。有没有更好的办法?
在javascript中,我知道我们可以观察属性更改,但可以观看函数吗?看着一个函数
如果我有这样的计算结果为boolen功能
function eval(value) {
return value == 1;
}
这将有可能持续评估这个功能直到真的吗?
我知道setTimeout可以工作,但这似乎是一个黑客。有没有更好的办法?
有两种主要可能的方式,第一种是你的,setTimeout。第二个是的setInterval:
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);
这是唯一的办法替代的作用。 –
*“...可以观看一个功能?”*观看它做什么?你期望*函数*改变,或者它的返回值? (例如,因为它的返回值是基于它关闭的东西)。 –
不确定你的意思,也许你应该更具体或提供一个用例。有一些框架可以像“观看”函数/变量值那样提供角度和基因敲除。你也可以看看[lodash](http://lodash.com/docs#compact)函数部分。它可能会有帮助。 – haki