(function(){})()和闭包之间的关系

本文解析了JavaScript中闭包与立即执行函数的概念,强调闭包涉及作用域中的数据隐藏与暴露,而立即执行函数仅是一种调用方式,二者本质不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值