由于闭包会携带者包含他的函数的作用域,因此回避其他函数占用更多的内存。过度的使用闭包可能会导致内存占用过多,我们建议只在绝对必要的时候再考虑使用闭包。
模仿块级作用域
(function(){ var now=new Date(); if(now.getMonth()==0&&now.getDate()==1){ alert("happy new year"); } })();
这就是模仿块级作用域,即定义并立即调用了一个匿名函数。
如下为演示其作用:
function outputNumbers(count){ (function(){ for (var i=0;i<count;i++){ console.log(i); } })(); console.log(i); } outputNumbers(5);
这是在模仿块级作用域之外的console.log(i)就会导致错误,因为i未被定义。说明在执行了模仿块级作用域之后,内部的变量就被销毁了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,同时也希望多多支持脚本之家!
您可能感兴趣的文章: