js原生自调用函数原理

简介: JavaScript中的IIFE(Immediately Invoked Function Expression)是定义后立即执行的函数表达式。它有两种实现方式:匿名函数表达式 `(function() { /* 函数体 */ })()` 和命名函数声明 `(function myFunction() { /* 函数体 */ })()`。IIFE提供封闭作用域,防止变量冲突,常用于创建私有作用域、封装代码和避免变量提升问题。执行后,IIFE内部的变量和函数会被销毁,除非被特意暴露。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

JavaScript中的自调用函数(Immediately Invoked Function Expression,IIFE)是一种特殊的函数表达式,它在定义后立即执行。自调用函数可以通过以下方式实现:

  1. 函数表达式:
    可以使用函数表达式的方式定义一个匿名函数,并立即调用它。这种方式使用圆括号将函数表达式包裹起来,并在后面添加一对空的圆括号()来立即调用函数。

    (function() {
         
      // 函数体
    })();
    

    在上述示例中,匿名函数被定义为(function() { /* 函数体 */ }),并通过最后的一对空的圆括号()立即调用。

  2. 函数声明与调用:
    除了函数表达式,也可以使用函数声明的方式定义一个函数,并立即调用它。需要注意的是,在函数声明后面添加一对空的圆括号()来立即调用函数。

    (function myFunction() {
         
      // 函数体
    })();
    

    在上述示例中,函数被声明为myFunction,并通过最后的一对空的圆括号()立即调用。

自调用函数的原理是将函数定义和调用结合在一起,形成一个封闭的作用域。这样可以避免函数内部的变量与外部作用域发生冲突,也可以控制函数的执行时机。

自调用函数常见的应用场景包括:

  • 创建私有作用域:通过自调用函数可以创建一个私有作用域,其中的变量和函数在函数内部是私有的,不会污染全局命名空间。
  • 封装代码:自调用函数可以用于封装一段代码,形成一个独立的模块,方便代码的组织和管理。
  • 避免变量提升问题:自调用函数可以避免因为变量提升导致的意外行为,通过将变量限定在函数内部,可以更好地控制变量的作用范围。

需要注意的是,自调用函数执行后会立即销毁,其中定义的变量和函数也会被销毁,除非在函数内部将它们暴露出来,以便外部访问。

相关文章
|
3天前
|
Web App开发 JavaScript 前端开发
浏览器与Node.js事件循环:异同点及工作原理
浏览器与Node.js事件循环:异同点及工作原理
|
3天前
|
前端开发 JavaScript
前端 js 经典:Object 常用原生方法
前端 js 经典:Object 常用原生方法
10 2
|
3天前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
7 1
|
3天前
|
JavaScript 索引
jQuery 实现 图片框切换【与原生 JS 对比】
jQuery 实现 图片框切换【与原生 JS 对比】
|
4天前
|
JavaScript 前端开发
探索JavaScript中的New操作符:原理与使用
探索JavaScript中的New操作符:原理与使用
|
4天前
|
监控 JavaScript 前端开发
超越原生:探索Node.js中最佳文件系统三方库
超越原生:探索Node.js中最佳文件系统三方库
|
4天前
|
JavaScript 前端开发 索引
JavaScript array 原生 reduce 方法的模拟实现
JavaScript array 原生 reduce 方法的模拟实现
9 2
|
5天前
|
JavaScript 前端开发
深入了解前端框架Vue.js的响应式原理
本文将深入探讨Vue.js前端框架的核心特性之一——响应式原理。通过分析Vue.js中的数据绑定、依赖追踪和虚拟DOM等机制,读者将对Vue.js的响应式系统有更深入的理解,从而能够更好地利用Vue.js构建灵活、高效的前端应用。
|
5天前
|
JavaScript 计算机视觉
原生js通过年龄判断是否可以抽奖
原生js通过年龄判断是否可以抽奖
11 0
|
5天前
|
存储 JavaScript 前端开发
原生JS如何实现验证码
原生JS如何实现验证码
14 0
http://www.vxiaotou.com