立即执行函数的用法

立即执行函数的用法

1、定义

是定义函数以后立即执行该函数

2、写法(2种)

第一种:用小括号把整个函数定义和调用包裹起来

  (function() {
        //   function body
    }())

第二种:用括号把函数定义包裹起来,后面加一对小括号

    (function(
        //   function body
    ) {})()

3、立即执行函数的作用

为了防止变量命名冲突(变量污染),我们采用立即执行函数策略。因为立即函数内部会形成一个单独的作用域,我们可以一些封装外部无法读取的(私有变量临时变量或局部变量),外面访问不到这样就可以避免变量污染;

注意:多个立即函数中间必须加分号隔开

  (function() {
        var num = 10;
    })();
    (function() {
        var num = 10;
    })();

4、立即执行函数的参数

  (function(j) {
   // 代码中可以使用j
    })(i);

如果立即执行函数中需要全局变量,全局变量会被作为一个参数传递给立即执行函数(上例中的i就是一个全局变量,i代表的是实参,j是i在立即执行函数中的形参)。

5、立即执行函数返回值

像其他函数一样,立即执行函数也可以有返回值。除了可以返回基本类型值以外,立即执行函数也能返回任何类型的值,比如对象,函数。

举例:

复制代码
  //变量result用来接受由立即执行函数返回的函数function() { return a + b;},result()相当于调用函数
    var result = (function() {
        var a = 2;
        var b = 2;
        return function() {
            return a + b;
        }
    })();
    console.log(result); //返回一个函数
    console.log(result()); //4
复制代码

结果:

 

posted @   蛋蛋仔  阅读(654)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示