先贴一段伪代码吧//开启计时器请求
this.setTimeout = function(){var self = this; //修改自动状态为true
this.isAuto = true;
//开启计时器
this.timer = setTimeout( function(){
/*计时运行的代码*/
self.setTimeout; //运行本身 },
/*计时器间隔*/
this.ajaxSpeel);
}这样的设计 让这个函数内部创建一个变量然后不断的 运行自己 这样的话 就会在作用域内创建作用域 会为内存带来增加么 如果不这样做的话 如何实现计时器呢 (不使用for 和 setInterval)
1 回答
![?](http://img1.sycdn.imooc.com/545863e80001889e02200220-100-100.jpg)
HUWWW
TA贡献1874条经验 获得超12个赞
好吧 我仔细回忆了一下我脑袋里面的小学知识
1.作用域的存在只有在子作用域还在执行的时候才会保留
2.这个setTimeout内部不存在子作用域 唯一的一个即将运行的计时器是setTimeout属于全局对象,他会在window作用域下面新开一个空间执行
3. 所以 总结一下 大概的运行过程是 this.setTimeout | window --> window.setTimeout --> window |
4. 果然 目前的出的结论是 只要不是直接创建子作用域的前提下 计时器setInterval 或者 ajax的毁掉内部作用域都不会残留自作用 也就不会对网页内存照成太大的伤害了!~~~
添加回答
举报
0/150
提交
取消