如何在另一个函数中停止一个函数?
例如:
var snow = function(){
var interval = setInterval( function(){
alert('letItSnow')
}, 1000);
};
snow();
clearInterval(snow.interval) - 异常
最佳答案
在 javascript 中,访问范围是通过函数声明来限制的,因此您本地声明的变量将无法在外部访问,因此您必须返回它或将其设置为全局变量(在父范围中可用的变量)
你需要对你的函数做一些轻微的调整,这样做:
var snow = function(){
return setInterval(function(){
alert('letItSnow');
}, 1000);
};
var interval = snow();
//on some event -- clearInterval(interval)
您还可以将 setTimeout
及其返回的 id 设置为 function
的属性,该属性可在其所有实例上使用,即
var snowClass = function(){
this.init = function(msg){
this.interval = setInterval(function(){alert(msg)},1000);
}
}
var snowObj = new snowClass();
snowObj.init('Let it snow');
//on some event -- clearInterval(snowObj.interval)
关于javascript - 如何在另一个函数中停止一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41358316/