JS 自执行函数原理及用法

yizhihongxing

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日

相关文章

  • JS中cookie的使用及缺点讲解

    什么是cookie Cookie是存储在客户端浏览器中的小数据片段,它会在HTTP请求和服务器响应之间传递数据。Cookie通常用于记录用户的登录状态、页面访问记录、用户偏好等信息。 JS中如何使用cookie 1. 设置cookie 要设置Cookie,可以使用document.cookie属性。例如: document.cookie = "us…

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

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

    JavaScript 2023年5月27日
    00
  • JavaScript中this关键字用法实例分析

    JavaScript中this关键字用法实例分析 什么是this关键字? 在 JavaScript 中, this 关键字是一个特殊的关键字,用于表示当前函数的执行环境。具体来说,this是在每个函数被调用时独立绑定的,如果没有特别指定执行环境,则 this 的默认值是全局对象 window。 this关键字的用法 在 JavaScript 中,this 关…

    JavaScript 2023年5月28日
    00
  • JSON Schema概念及使用场景

    JSON Schema概念及使用场景 什么是JSON Schema JSON Schema是一种用于描述JSON数据格式的规范。它可以定义JSON格式的结构、各个字段的类型和取值范围等限制条件。 JSON Schema通常以JSON对象的形式给出,其中包含了对目标数据的描述信息。JSON Schema使用的是标准的JSON规则,可以由任何支持JSON的软件系…

    JavaScript 2023年5月27日
    00
  • javascript闭包入门示例

    当我们在 JavaScript 中使用函数时,往往会遇到闭包的概念。那么什么是闭包呢?简单来说,闭包就是一个可以访问自由变量的函数。这个自由变量指的是函数内部定义的变量,在函数外也可以访问。下面我们通过两个示例来深入理解 JavaScript 闭包的概念和用法。 示例 1:基础闭包示例 function outerFunction() { var outer…

    JavaScript 2023年6月10日
    00
  • javascript字符串对象常用api函数小结(连接,替换,分割,转换等)

    下面是详细讲解“JavaScript字符串对象常用API函数小结(连接,替换,分割,转换等)”的完整攻略。 一、JavaScript字符串对象 JavaScript字符串对象是JavaScript中表示字符序列的数据类型,字符串是用于存储和操作文本的任意数量的字符的数据类型。 在JavaScript中,字符串可以使用单引号(’ ‘)或双引号(” “)引起来。…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计 错误处理与调试学习笔记

    下面我将详细讲解“JavaScript高级程序设计 错误处理与调试学习笔记”的完整攻略。 1. 学习目标 学习本篇笔记的目标是了解JavaScript中的错误处理和调试技术。具体包括以下方面: 理解JavaScript中的错误类型; 掌握JavaScript中的错误处理机制; 掌握JavaScript中的调试技术。 2. 错误类型及处理机制 在JavaScr…

    JavaScript 2023年5月27日
    00
  • 设置和读取cookie的javascript代码

    下面我将为您讲解设置和读取cookie的JavaScript代码完整攻略。 设置Cookie 要设置Cookie,我们可以使用document.cookie属性。该属性包含所有当前页面的Cookie。我们可以通过向document.cookie添加字符串来添加Cookie。 以下是添加单个Cookie的代码: // 设置一个名为 username 的 coo…

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