js中的立即执行函数

发布时间:2024年01月18日

js立即执行函数通常用来创建一个独立的作用域并立即执行,常见的形式有小括号,或者一元运算符两种形式.立即函数内定义的任何变量或函数作用域也仅在当前立即函数体内.当然变量要有修饰符,不然就变成了全局变量.

小括号

js引擎会把小括号内解释为表达式,这样就可以定义函数并立即执行了

小括号括起来的匿名/非匿名函数,如果需要传参可以在定义时使用形参,调用小括号内传入实参,当然js函数的特性你也可以不声明形参使用arguments对象.

//使用小括号定义的立即执行函数
(function(){
	...
})()

(function(a,b){
	...
})(a,b)


//当然调用函数小括号也可以在内部
(function(){
	...
}())

(function(a,b){
	...
}(a,b))


//上面的匿名函数也可以是非匿名函数,当然除非是要用到递归调用,一般没必要,这个函数作用域仅在立即执行函数体内

(function test(a,b){
	...
})(a,b)

一元运算符

一元运算符由于优先级原因,js引擎会把一元运算符后的部分解释为表达式,从而起到定义并立即执行的目的.常用的有+,-,!,~等.

形式和上面小括号的一样,只不过把小括号去掉,然后前面加上这些一元运算符即可.

下面随便列举两个,其它形式的自己根据上面类比

~function(a,b){
	
}(a,b)

~function test(a,b){
	
}(a,b)

当然上面的函数定义也可以使用ES6的箭头函数,根据上面的常见形式类比就可以了.

文章来源:https://blog.csdn.net/justdoshare/article/details/135666336
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。