Javascript 如何钩住js函数,防止在if语句上执行操作并继续函数流 const querys=['bite','attack','curse','heal'] 函数sendQuery(查询){ log('Sending Query->'+Query); } 设置间隔(()=>{ sendQuery(查询[Math.floor((Math.random()*querys.length))); }, 1000); const_sendQuery=sendQuery; sendQuery=函数(e){ 如果(e==‘诅咒’){ //现在,如果它与“诅咒”匹配,我想阻止它被记录,而不涉及函数流。我可以返回,但这将停止函数。 //所以它不应该被记录 } log('Hooked Query->'+e); _发送查询(e); }

Javascript 如何钩住js函数,防止在if语句上执行操作并继续函数流 const querys=['bite','attack','curse','heal'] 函数sendQuery(查询){ log('Sending Query->'+Query); } 设置间隔(()=>{ sendQuery(查询[Math.floor((Math.random()*querys.length))); }, 1000); const_sendQuery=sendQuery; sendQuery=函数(e){ 如果(e==‘诅咒’){ //现在,如果它与“诅咒”匹配,我想阻止它被记录,而不涉及函数流。我可以返回,但这将停止函数。 //所以它不应该被记录 } log('Hooked Query->'+e); _发送查询(e); },javascript,Javascript,正如我提到的,我想挂接到sendQueryfunc,检查查询是否与if语句匹配,如果匹配,我不想记录它,而不影响函数流,我的意思是我不想停止该函数。我知道我可以在钩子中的if语句之后返回。一个简单的解决方案是在值不是Curse时运行函数,而不是关注Curse是什么 const querys=['bite','attack','curse','heal'] 函数sendQuery(查询){ log('Sending Query->'+Query); } 设置间隔(()=>{ sendQuery(

正如我提到的,我想挂接到
sendQuery
func,检查查询是否与if语句匹配,如果匹配,我不想记录它,而不影响函数流,我的意思是我不想停止该函数。我知道我可以在钩子中的if语句之后返回。

一个简单的解决方案是在值不是Curse时运行函数,而不是关注Curse是什么

const querys=['bite','attack','curse','heal']
函数sendQuery(查询){
log('Sending Query->'+Query);
}
设置间隔(()=>{
sendQuery(查询[Math.floor((Math.random()*querys.length)));
}, 1000);
const_sendQuery=sendQuery;
sendQuery=函数(e){
如果(e!=“诅咒”){
log('Hooked Query->'+e);
_发送查询(e);
}

}
欢迎来到SO!我不确定我是否理解——你能简单地将
控制台。将
记录到检查查询是否符合你的术语的块中吗?这只是一个例子,实际上我没有访问sendQuery函数的权限,我可以重写它,或者挂接它并侦听特定的查询,如果我想停止某个查询,我可以通过挂接来完成,但不知道怎么做。@ggorlen,我猜OP真正想要的是当e!='“诅咒”而不是他们问的问题。为了清楚起见,我想阻止原始func将查询发送到服务器,如果它与我的语句匹配,请想象原始sendQuery func中的控制台日志是一个ajax调用。@Hirakinuzo,有时最简单的解决方案是人们最后尝试的。除非有充分的理由不这样做,最好使用“!=”或“=”,而不是“!=”和“=”。。。