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

IIFE算是闭包吗?

IIFE算是闭包吗?

慕沐林林 2018-12-27 18:14:23
为什么我总觉得IIFE只是简单的函数调用,没有闭包啊下面的代码哪有闭包啊for(var i=0; i<5; ++i){(function foo(j){      setTimeOut(function foo1(){ console.log(j) }, 1000 )     })(i)}
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

闭包和IIFE没关系,如果用IIFE实现了作用域和函数的组合(比如return了函数)就有闭包,反之就没有。
这里是MDN的解释Closures
闭包

var myFunc = (function makeFunc() {

  var name = 'Mozilla';

  function displayName() {

    alert(name);

  }

  return displayName;

})();

myFunc();

没有闭包


(function makeFunc() {

  var name = 'Mozilla';

  function displayName() {

    alert(name);

  }

  displayName();

})();

我觉得闭包的特征在于是否利用函数进行跨作用域操作,保留其他作用域中的变量。


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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