为了账号安全,请及时绑定邮箱和手机立即绑定

关于函数闭包、函数作为参数传递疑问

关于函数闭包、函数作为参数传递疑问

largeQ 2018-11-06 13:13:45
1.描述:我想得到一个函数数组 result ,首先func函数向数组result里添加匿名函数(每个匿名函数都保存了各自的num)但是我将return 后面的匿名函数我用参数传进来,相当于只是做了替换而已,为什么结果却不同呢。下面我将 return 后面匿名函数作为参数传进去就获取不到。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

因为第二段代码中的fn是定义在全局环境中的。
你可以看看这里和下边的代码,希望对你有帮助

function func(fn){

  var result =[] ;

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

    result.push(

      function (num){

        return fn;     

      }(i)

    );

  }

 return result;

}


function fn(){

  return num;

}

var num = 1;

console.log(func(fn)[1]()); //1


查看完整回答
反对 回复 2018-12-26
  • 1 回答
  • 0 关注
  • 577 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号