正文
立即执行函数(function(){})()与闭包
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
立即执行函数
匿名(function(){})()
当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来。
$(function(){})
$(function(){});是$(document).ready(function(){});的简写,相当于window.onload = function(){} ,虽然这段jquery代码与javascript代码在功能上可以互换,但执行的时间不一样,前者页面框架加载完成就执行,后者页面中所有内容加载完成才执行。
闭包
(function(){})()不叫闭包叫立即执行函数 ,所谓闭包,要拆成闭和包,闭指代不想暴露给外部的数据,包指代将数据打包出去暴露给外部;之所以这么说原因在于JS的函数作用域, 函数内部的变量函数外部无法访问,这形成了闭 ; 函数外部想得到函数内部的变量,可以通过某些方法譬如通过return等语句将内部的变量暴露出去,这形成了包 ;因而——立即执行函数只是函数的一种调用方式,和闭包没有必然的联系;闭包是和作用域扯上关系的,而(function(){})()是函数声明完就执行,只是有时想要用到闭包那么可以用(function(){})()来构成闭包,而不是(function(){})()是闭包。 闭包的本质是执行完后只返回有用的数据,包内变量完全销毁,防止全局污染 。
————————————————
参考:https://blog.csdn.net/qq_36189935/article/details/85275404