关于立即执行函数

立即执行函数(针对初始化功能的函数,执行完就会被释放):

只有表达式,才能被执行,如下,函数声明不能被执行:

 

 

 而下面的声明式则可以被执行:

 

 

 

 

 

 能被执行符号执行的表达式,这个名字就会被忽略,如下表达式的执行相当于一个立即执行函数,执行完之后就被释放了:

关于立即执行函数_第1张图片

 

 关于立即执行函数_第2张图片

 

函数声明前加上加减或者“!”号就会变成表达式:

 

 

 

 关于立即执行函数_第3张图片

 

应用:

关于立即执行函数_第4张图片

结果为:

这是因为,在test的for循环里,只有赋值,并没有运行,故每一遍循环都是相当于arr[i]=function(){ document.write(i) },即arr[1]=function(){ document.write(i) }  ,arr[2]=function(){ document.write(i) }......arr[9]=function(){ document.write(i) },当i变成10的时候,停止循环。

在myArr[j]才是执行的时候,i已经变成了10,当myArr[0]到myArr[9]执行的时候,i都是10,故打印出来了10个10。

如果要使打印出来的结果为0-9,可以使用立即执行函数:

关于立即执行函数_第5张图片

结果如下:

你可能感兴趣的:(关于立即执行函数)