javascript - 如何在另一个函数中停止一个函数

标签 javascript jquery

如何在另一个函数中停止一个函数?

例如:

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/

相关文章:

javascript - 国际键盘上常用字符的键码

javascript - 避免在创建新元素时由于文本值而破坏字符串

javascript - JSON 数据不使用 .html() 显示

jquery - 按属性对 DOM 元素进行排序(顺序)

javascript - NW.js : Failed to parse SessionDescription. 无法正确解析音频编解码器

javascript - Meteor:超出最大调用堆栈大小

javascript - paper-radio-group 仅在第二次单击时进行选择

JavaScript JSON 数组编号不一致

javascript - 使用 Jquery 对 IE7+ 和 Mozilla 进行 XML 解析

javascript - bxSlider - 使用寻呼机时幻灯片之间的错误停顿