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));

  }

原文地址:https://www.cnblogs.com/ehuanrum/p/6626606.html