IIFE(立即调用函数表达式 )

IIFE函数的声明和函数调用:

函数的声明中,我们首先看到的是function关键字,JS编译器认为这个是一个函数声明,为了解决上述问题,使用一对() 将函数的声明括起来,是的JS编译器不再认为这时一个函数声明,而是一个IIFE。

IIFE( 立即调用函数表达式)是一个在定义时就会立即执行的 JavaScript 函数

(function () {
    statements
})();

这是一个被称为 自执行匿名函数 的设计模式,主要包含两部分。第一部分是包围在 圆括号运算符 () 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。

这不仅避免了外界访问此 IIFE 中的变量,而且又不会污染全局作用域。

第二部分再一次使用 () 创建了一个立即执行函数表达式,JavaScript 引擎到此将直接执行函数。

示例

(function () {
    var name = "Barry";
})();
// 无法从外部访问变量 name
name // 抛出错误:"Uncaught ReferenceError: name is not defined"

将 IIFE 分配给一个变量,不是存储 IIFE 本身,而是存储 IIFE 执行后返回的结果。

var result = (function () {
    var name = "Barry";
    return name;
})();
// IIFE 执行后返回的结果:
result; // "Barry"

带参数的IIFE,可以带多个参数。

我们可以写一个类似 Jquery的插件:

 (function(){
      function add(a,b){
        return  a + b;
      }

      function sub(a,b){
        return a - b;
      }

      window.$ = function(){
        return {
          add:add,
          sub:sub
        }
      }

     })()
console.log($().add(3,5));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏_2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值