JS 自执行函数原理及用法

JS自执行函数原理及用法

1. 什么是自执行函数

自执行函数是指在定义后立即执行的一种函数。

在 JavaScript 中,所有的函数都是对象,因此自执行函数本质上也是一个函数对象,只是这个函数对象定义后立即执行了。

自执行函数是利用函数作用域和闭包的特性,可以有效避免全局污染和变量名冲突。

2. 自执行函数的语法

自执行函数的语法非常简单,只需要在函数定义时在函数定义后添加一个括号即可。

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

在这个语法结构中,圆括号内部不能包含函数名称,否则就变成了通过函数名称来调用函数,而不是定义并自动执行函数。

3. 自执行函数的用法

3.1. 避免全局变量污染

自执行函数可以用来封装一些代码,防止它们污染全局作用域。例如:

(function() {
  var message = "Hello, world!";
  alert(message);
})();

在这个例子中,代码被包裹在自执行函数中,因此其中定义的变量 message 不会影响到全局作用域,也不会和其他脚本产生冲突。

3.2. 把变量作用域限制在函数内部

在 JavaScript 中,变量的作用域是函数级别的,而不是块级别的。这意味着,如果一个变量在函数内部定义,它可以在该函数的任何位置访问到。

自执行函数可以用来把变量的作用域限制在函数内部。例如:

(function() {
  var message = "Hello, world!";
  function showMessage() {
     alert(message);
  }
  showMessage();
})();

在这个例子中,变量 message 被定义在自执行函数内部,它只能在自执行函数内部访问到。函数 showMessage 也是如此,它只能在自执行函数内部访问到。

4. 注意事项

4.1. 自执行函数必须使用括号包裹

在语法上,自执行函数必须使用括号将函数定义括起来,再加上一对括号,才能正确地执行自执行函数。

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

同时也要注意,括号内部不能包含函数的名称,否则就是定义函数而非自执行函数。

4.2. 自执行函数的返回值可以被使用

自执行函数是一个普通的函数,因此你可以通过在括号内部插入参数,将返回值暴露出来并被外部使用。

例如:

var result = (function() {
  return "Hello, world";
})();
alert(result); // "Hello, world"

在这个例子中,自执行函数返回一个字符串 "Hello, world",该字符串被存储在变量 result 中,并可以在后面的代码中使用。

5. 示例

5.1. 在自执行函数中全局定义常量

(function() {
  const PI = 3.14;
  console.log(`PI is ${PI}`);
})();
console.log(PI); // 抛出一个未定义的异常

5.2. 在自执行函数中添加一个事件处理函数

(function() {
  var button = document.getElementById('my-button');
  button.addEventListener('click', function() {
    // 处理按钮点击事件的代码
    console.log("button clicked");
  });
})();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS 自执行函数原理及用法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • flash与js通讯方法

    Flash与JS通讯是前端开发中经常遇到的问题,下面我来为大家详细讲解一下Flash与JS通讯方法的完整攻略。 Flash与JS通讯方法 Flash与JS之间的通讯一般通过两种方式,一种是Flash调用JS方法,另一种是JS调用Flash方法。下面分别详细讲解这两种方式。 Flash调用JS方法 Flash调用JS方法是通过ExternalInterface…

    JavaScript 2023年6月11日
    00
  • js 数组详细操作方法及解析合集

    JS 数组详细操作方法及解析合集 什么是数组? 在JavaScript中,数组是一种存储多个值的有序集合。数组中的每个值称为一个元素,每个元素都有一个相应的数字键(称为索引)来标识其在数组中的位置。 创建数组 在JavaScript中,有多种方式来创建数组。下面是一些示例: 使用数组字面量 数组字面量是用方括号 [] 包围并由逗号分隔构成的值序列,如下所示:…

    JavaScript 2023年5月18日
    00
  • 原生JS封装animate运动框架的实例

    当我们需要进行网页中的动画操作,很多时候会涉及到DOM元素的运动,比如移动、旋转、透明度变化等等。这时候,JavaScript的animate函数封装可以帮助我们更加方便地实现动画效果。 以下是原生JS封装animate运动框架的实例的完整攻略: 1. 利用JavaScript封装animate运动框架 我们首先需要使用JavaScript来封装animat…

    JavaScript 2023年6月10日
    00
  • 学习js所必须要知道的一些

    学习JavaScript所必须要知道的一些攻略 简介 学习JavaScript(以下简称JS)时,需要一些基础知识,其中包括语法、DOM操作、Ajax、闭包等等。下面将详细介绍学习JS的一些必备知识。 1. 语法 1.1 数据类型 JS包含7种不同的数据类型,分为原始类型和对象类型。原始类型包括: 数字(Number):整数或浮点数 字符串(String):…

    JavaScript 2023年5月28日
    00
  • Java实现Promise.all()的示例代码

    Java实现Promise.all()的示例代码,是指在Java语言中实现Promise.all()方法的示例代码。Promise.all()方法是JavaScript语言中的一个API,可以并行地处理多个Promise对象,并将它们的结果一起返回。在Java语言中,我们可以使用CompletableFuture类来实现一个类似Promise.all()的方…

    JavaScript 2023年5月28日
    00
  • JS按钮倒计时并跳转到新地址的实现代码

    下面详细讲解一下JS按钮倒计时并跳转到新地址的实现代码的完整攻略。这个功能可以用在活动页面,对按钮进行倒计时限制,避免用户频繁点击。首先,我们需要实现一个计时器,在设置好指定时间后,在指定时间到达时触发跳转链接。 实现步骤 首先,我们需要在HTML代码中创建按钮: html <button onclick=”countdown(10,’http://w…

    JavaScript 2023年6月11日
    00
  • JS判断两个时间大小的示例代码

    JS判断两个时间大小是一个比较常用的功能,常用于比较两个时间先后顺序,以便进行时间排序、时间筛选等操作。下面是我为大家提供的几个示例代码及攻略。 示例一:使用Date对象实现时间比较 首先,我们需要知道JS中的Date对象是一个非常方便的时间操作工具,它可以将日期和时间存储为一个数字值,然后可以方便地进行各种处理和比较。 以下是使用Date对象实现判断两个时…

    JavaScript 2023年5月27日
    00
  • JavaScript中filter的用法实例分析

    我们来详细讲解一下“JavaScript中filter的用法实例分析”。 什么是filter? 在JavaScript中,filter()是Array对象的一个方法,它用于过滤数组中的元素,根据指定的条件筛选出符合条件的元素组成一个新数组并返回,原数组不会改变。 filter()方法接收一个函数作为参数,这个函数会被逐个考察数组中的元素,只有在符合特定条件时…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部