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日

相关文章

  • 将字符串转换成gb2312或者utf-8编码的参数(js版)

    要将字符串转换为 GB2312 或 UTF-8 编码的参数,可以通过 JavaScript 中的 encodeURI() 和 encodeURIComponent() 方法来实现,这两个方法的区别在于 encodeURIComponent() 方法会对一些特殊字符进行编码,而 encodeURI() 不会。 具体代码如下所示: let str = &quot…

    JavaScript 2023年5月19日
    00
  • JavaScript执行顺序详细介绍

    下面是JavaScript执行顺序的详细介绍攻略。 1. 什么是执行顺序 在JavaScript中,执行顺序指的是代码在运行时所遵循的顺序,即JavaScript引擎根据代码的语法和逻辑来决定执行哪个代码块。对于同步执行的代码,执行顺序遵循“自上而下,从左到右”的顺序,而对于异步执行的代码,则需要遵循事件循环机制的规则。 2. 同步执行代码的执行顺序 对于同…

    JavaScript 2023年5月18日
    00
  • javascript面向对象的方式实现的弹出层效果代码

    JavaScript中面向对象编程(Object-Oriented Programming,简称OOP)是一种常见的编程方式,通过将数据属性和方法封装在对象中,实现了代码的复用性、可读性和可维护性。本文将从实现弹出层效果的角度,详细讲解如何使用JavaScript面向对象的方式实现弹出层效果的代码。 构建弹出层对象 首先,我们需要创建一个弹出层对象。这个对象…

    JavaScript 2023年6月10日
    00
  • 初学js插入节点appendChild insertBefore使用方法

    请你耐心看完以下的攻略: 初学js插入节点appendChild insertBefore使用方法 在 web 开发中,操作 DOM (文档对象模型)是必不可少的功能。DOM 提供了操作 HTML、XML 文档的接口,使得我们可以通过 JS 在 HTML 页面中进行各种动态操作,例如添加、删除、移动节点等。其中添加节点是常见的操作之一,本文将讲解常用的添加节…

    JavaScript 2023年6月10日
    00
  • 深入理解Javascript中this的作用域

    下面是针对“深入理解Javascript中this的作用域”的完整攻略: 1. this的基本概念 在 JavaScript 中,this 代表函数运行时的上下文环境,指向的是当前函数执行的对象。也就是说,this 的值是根据函数的调用方式而定的,有以下几种: 函数作为独立的函数调用时,this 指向全局对象,也就是 window(浏览器环境)或 globa…

    JavaScript 2023年6月10日
    00
  • 利用JS轻松实现获取表单数据

    下面我将详细讲解“利用JS轻松实现获取表单数据”的完整攻略。 1. 表单概述 表单是Web页面中常见的一种交互方式,是用户输入相关信息的一组控件。常见的表单控件包括输入框、下拉框、单选框、复选框等。表单控件一般都有一个name属性,通过该属性可以对表单进行相应的操作。 2. 使用JavaScript获取表单数据 可以使用JavaScript获取表单中输入的数…

    JavaScript 2023年6月10日
    00
  • js实现非常简单的焦点图切换特效实例

    下面我将详细讲解如何实现JS实现非常简单的焦点图切换特效。 1. 理解需求 在动手编写代码之前,我们需要先清楚自己要做什么。根据题目描述,我们需要实现一个简单的焦点图切换特效,其中最基本的要求就是能够自动轮播图片。除此之外,还可以设置左右切换按钮、底部焦点导航等功能,以便用户手动切换图片。 2. HTML结构 在开始编写JS代码之前,我们需要先构建一个基本的…

    JavaScript 2023年6月11日
    00
  • Javascript定义类(class)的三种方法详解

    Javascript定义类(class)的三种方法详解 1. ES6 Class 首先,“ES6 Class”是一种相对简单的定义类的方法,它采用了一种“类”的概念,并以“class”关键字来定义类。这种方法最常用,也是最简单的定义类的方式。 class Person { constructor(name, age) { this.name = name; …

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