javascript之函数闭包

经常听到闭包,闭包例子如下:

  function getFun(demo ){

    var result = '--**--';

    return function(){

      return [result ,demo];

    };

  }

闭包主要用来包裹一块独立的功能,避免被外面的变量污染,但是会返回一些接口来使用内部的变量和逻辑。

  for(var i=0;i<4;i++){

    setTimeout(function(){

      console.log(i);

    });

  }

上面的代码输出的数据是否跟期望的不一样。需要改造成下面这样:

  for(var i=0;i<4;i++){

    setTimeout((function(ii){

      return function(){console.log(ii);};

    })(i));

  }

posted @ 2017-03-27 14:35  EhuanRum  阅读(77)  评论(0编辑  收藏  举报