定义
马上实行函数形式是一种语法,能够让你的函数在定义后马上被实行,
这类形式本质上就是函数表达式(定名的或许匿名的),在建立后马上实行;
马上实行函数(immediate function)术语不是在ECMAScript规范中定义的,但它很短有助于形貌和议论形式;
这类形式有一些几部分构成:
运用函数表达式定义一个函数(函数声明不能起作用)
在末端加上一对括号,让函数马上被实行
将全部函数包裹在一对括号中(只要在你不将函数赋值给一个变量的时刻才须要)
功用
它能够帮你封装大批的事情而不会在背地遗留任何全局变量。
你定义的一切变量都邑成员马上实行函数的局部变量,所以你不必忧郁这些暂时变量会污染全局空间
能够运用这类手艺能够模拟一个私有作用域,用匿名函数作为一个“容器”,“容器”内部能够接见外部的变量,而外部环境不能接见“容器”内部的变量
能够增加更多的增强模块,移除它们,零丁测试它们,许可用户去禁用它们等等
为何要有js马上实行函数,存在的意义是什么
注重点
马上实行函数平常作为一个零丁模块运用。平常没有问题,然则,发起在本身写的马上实行函数前加分号,如许能够有效地与前面代码举行断绝。不然,能够涌现意想不到的毛病。
js自实行函数前加个分号是什么意义?
写法
最前末了加括号
(function(){alert(1);}());
JSLINT引荐这类写法
function表面加括号
(function(){alert(1);})();
现在许多比较好的js library 运用的都是第二种体式格局。
比方: web 图形绘制的: git , draw2d ,….function前面加运算符,罕见的是!与void
!function(){alert(1);}(); void function(){alert(2);}();
在function前面加!、+、 -以至是逗号比及都能够起到函数定义后马上实行的结果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消除了javascript引擎辨认函数表达式和函数声明的歧义
js中马上实行函数