闭包、setTimeout

2017-09-07  本文已影响0人  疯小儿

1.什么是闭包,闭包的作用是什么?

function f1(){
    var n=1;
    nAdd=function(){n+=1}
    function f2(){
      alert(n);
    }
    return f2;
  }
  var result=f1();
 result(); // 1
  nAdd();
  result(); // 2
console.log(1);
setTimeout(function(){console.log(2);},1000);
console.log(3);//输出的结果:1 3 2

如果将setTimeout()的第二个参数设为0,就表示当前代码执行完(执行栈清空)以后,立即执行(0毫秒间隔)指定的回调函数。换句话说,就是要等当前脚本的同步任务和“任务队列”中已有的事件,全部处理完以后,立马执行setTimeout()。
例如:

setTimeout(function(){console.log(1);}, 0);
console.log(2);//执行结果总是2,1 
上一篇 下一篇

猜你喜欢

热点阅读