javascript自执行函数

定义

当即执行函数模式是一种语法,可让你的函数在定义后当即被执行,
这种模式本质上就是函数表达式(命名的或者匿名的),在建立后当即执行;
当即执行函数(immediate function)术语不是在ECMAScript标准中定义的,但它很短有助于描述和讨论模式;
这种模式有一些几部分组成:javascript

  • 使用函数表达式定义一个函数(函数声明不能起做用)java

  • 在结尾加上一对括号,让函数当即被执行git

  • 将整个函数包裹在一对括号中(只有在你不将函数赋值给一个变量的时候才须要)web

功能

  • 它能够帮你封装大量的工做而不会在背后遗留任何全局变量。函数

  • 你定义的全部变量都会成员当即执行函数的局部变量,因此你不用担忧这些临时变量会污染全局空间测试

  • 可使用这种技术能够模仿一个私有做用域,用匿名函数做为一个“容器”,“容器”内部能够访问外部的变量,而外部环境不能访问“容器”内部的变量code

  • 能够添加更多的增强模块,移除它们,单独测试它们,容许用户去禁用它们等等
    为何要有js当即执行函数,存在的意义是什么ip

注意点

当即执行函数一般做为一个单独模块使用。通常没有问题,可是,建议在本身写的当即执行函数前加分号,这样能够有效地与前面代码进行隔离。不然,可能出现意想不到的错误。
js自执行函数前加个分号是什么意思?作用域

写法

  1. 最前最后加括号get

    (function(){alert(1);}());

    JSLINT推荐这种写法

  2. function外面加括号

    (function(){alert(1);})();

    目前不少比较好的js library 使用的都是第二种方式。
    好比: web 图形绘制的: git , draw2d ,....

  3. function前面加运算符,常见的是!与void

    !function(){alert(1);}(); 
    void function(){alert(2);}();

    在function前面加!、+、 -甚至是逗号等到均可以起到函数定义后当即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消除了javascript引擎识别函数表达式和函数声明的歧义
    js中当即执行函数

相关文章
相关标签/搜索