js中的立即执行函数

js中的立即执行函数

立即执行函数是一种语法模式,可以让你的函数在定义后立即执行。本质是一个表达式,使用运算符将函数声明转换为函数表达式之后就可达到立即执行效果

这样,使得页面加载完成后只执行一次设置的函数。且因将设置函数中的变量包裹在局部变量中,不会泄露成全局变量。

立即执行函数的写法
  1. 匿名函数不能单独定义,必须赋值操作或立即执行,否则会被JS引擎定义为语法错误。

    1
    2
    function(){alert(dada);}
    VM229:1 Uncaught SyntaxError: Unexpected token
  2. 在函数体后面加括号就能立即调用,这个函数形式必须是函数表达式,不能是函数声明。

    1
    2
    function(){alert(123);}();
    VM265:1 Uncaught SyntaxError: Unexpected token (
  3. 可以在函数前面加符号,或者用括号将函数包住来消除函数声明。

    1
    (function(){alert(123);})();
  4. 消除函数声明最安全的做法是加括号,因为运算符号还会和函数的返回值进行运算,造成不必要麻烦。

  5. 包住函数表达式的括号可以括住参数,也可以不括住,效果是一样的。

通常,全局变量被作为一个参数传递给立即执行函数参数,这样她在函数内部不使用window就可以访问到全局变量。

1
2
3
(function (global){
console.log(global);
})(this);

通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可,如jQuery代码结构。

文章目录
  1. 1. js中的立即执行函数
    1. 1.0.0.0.1. 立即执行函数的写法
|