js 作用域 和 内存的问题

先贴一段伪代码吧


//开启计时器请求
    this.setTimeout = function(){var self = this;        //修改自动状态为true
        this.isAuto = true;        
        //开启计时器
        this.timer = setTimeout(        function(){ 
            /*计时运行的代码*/ 
            self.setTimeout;  //运行本身        }, 
        /*计时器间隔*/
        this.ajaxSpeel);
        
    }


这样的设计  让这个函数内部创建一个变量然后不断的 运行自己  

这样的话 就会在作用域内创建作用域  会为内存带来增加么  

如果不这样做的话   如何实现计时器呢  (不使用for  和  setInterval)


烙印99
浏览 545回答 1
1回答

HUWWW

好吧  我仔细回忆了一下我脑袋里面的小学知识1.作用域的存在只有在子作用域还在执行的时候才会保留  2.这个setTimeout内部不存在子作用域 唯一的一个即将运行的计时器是setTimeout属于全局对象,他会在window作用域下面新开一个空间执行3. 所以 总结一下   大概的运行过程是  this.setTimeout |  window --> window.setTimeout --> window | 4. 果然 目前的出的结论是 只要不是直接创建子作用域的前提下  计时器setInterval 或者 ajax的毁掉内部作用域都不会残留自作用  也就不会对网页内存照成太大的伤害了!~~~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript