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

(function(){})()这个为什么是闭包?

(function(){})()这个为什么是闭包?

正在回答

2 回答

(function(){})()这不叫闭包这叫立即执行函数,所谓闭包,要拆成闭和包,闭指代不想暴露给外部的数据,包指代将数据打包出去暴露给外部;之所以这么说原因在于JS的函数作用域,函数内部的变量函数外部无法访问,这形成了闭;函数外部想得到函数内部的变量,可以通过某些方法譬如通过return等语句将内部的变量暴露出去,这形成了包;因而——立即执行函数只是函数的一种调用方式,和闭包没有必然的联系;闭包是和作用域扯上关系的,而(function(){})()是函数声明完就执行,只是有时想要用到闭包那么可以用(function(){})()来构成闭包,而不是(function(){})()是闭包。把你的问题说的通俗点(function(){})()假设是新东方厨师学校,那么按你的问题就是(function(){})()为什么是厨师,然而厨师也可以是function a(){}旧东方厨师学院出来的,只是同为厨师(闭包)两者去了不同的学校(函数)而已,但改变不了他们是厨师的本质。


2 回复 有任何疑惑可以回复我~

这问题....    1加1 为啥等于2?

0 回复 有任何疑惑可以回复我~
#1

哈哈348746 提问者

我的意思是这就不是个闭包
2017-02-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

(function(){})()这个为什么是闭包?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信