首页 新闻 赞助 找找看

js 作用域 和 内存的问题

0
悬赏园豆:20 [已解决问题] 解决于 2017-10-17 10:06

先贴一段伪代码吧

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

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

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

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

blurs的主页 blurs | 小虾三级 | 园豆:660
提问于:2017-10-17 09:54
< >
分享
最佳答案
0

好吧  我仔细回忆了一下我脑袋里面的小学知识

1.作用域的存在只有在子作用域还在执行的时候才会保留  

2.这个setTimeout内部不存在子作用域 唯一的一个即将运行的计时器是setTimeout属于全局对象,他会在window作用域下面新开一个空间执行

3. 所以 总结一下   大概的运行过程是  this.setTimeout |  window --> window.setTimeout --> window | 

4. 果然 目前的出的结论是 只要不是直接创建子作用域的前提下  计时器setInterval 或者 ajax的毁掉内部作用域都不会残留自作用  也就不会对网页内存照成太大的伤害了!~~~

blurs | 小虾三级 |园豆:660 | 2017-10-17 10:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册