js 在定义的时候立即执行的函数表达式(function)写法

yizhihongxing

“js 在定义的时候立即执行的函数表达式(function)写法”也称为IIFE(Immediately Invoked Function Expression)。

IIFE 是一种 JavaScript 函数,它们在定义时会立即执行自己,且不会在全局可见,即不会污染全局作用域。IIFE 最常用的场景是将代码封装在一个作用域中,以防止变量名冲突和代码污染。下面是 IIFE 的标准写法:

(function() {
  // 这里是代码块
})();

其中,函数表达式被包裹在一对小括号中,立即执行该函数的方式是在最后加上一对小括号。

示例一:将变量私有化

(function() {
  var privateVariable = "IIFE can protect me!";
  console.log(privateVariable); // "IIFE can protect me!"
})();
console.log(typeof privateVariable); // "undefined"

在这个示例中,我们创建了一个 IIFE,将变量 privateVariable 定义在函数内部。我们可以在函数内部访问该变量,但在 IIFE 外部是无法访问变量的,从而实现了变量私有化的目的。

示例二:模块化编程

var myModule = (function() {
  var privateCounter = 0;
  function privateFunction() {
    privateCounter++;
  }

  return {
    incrementCounter: function() {
      privateFunction();
    },

    getCounterValue: function() {
      return privateCounter;
    }
  };
})();

myModule.incrementCounter();
console.log(myModule.getCounterValue()); // 1
console.log(typeof privateCounter); // "undefined"

在这个示例中,我们创建了一个模块,使用了 IIFE 将模块的代码封装在一个私有作用域中。该模块包含私有变量 privateCounter 和私有函数 privateFunction。通过返回一个包含自定义函数的对象字面量,外部代码可以访问模块中的函数,而不能访问模块中的私有变量和私有函数,实现了模块化的目的。

以上就是 IIFE 的完整攻略,使用 IIFE 可以帮助我们更好地管理作用域和模块化编程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 在定义的时候立即执行的函数表达式(function)写法 - Python技术站

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

相关文章

  • js jquery ajax的几种用法总结(及优缺点介绍)

    下面是详细讲解“js jquery ajax的几种用法总结(及优缺点介绍)”的完整攻略。 概述 Ajax(Asynchronous JavaScript and XML)是指一种创建交互式、快速动态网页的技术,通过在后台与服务器进行少量数据交换,提升用户体验。在JavaScript中,我们可以通过原生的XMLHttpRequest对象和jQuery的ajax…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript原型与原型链

    详解JavaScript原型与原型链 前置知识 在深入讲解JavaScript原型与原型链之前,需要了解以下概念: 对象 构造函数 实例 继承 原型 JavaScript中有一个对象,称为原型对象(prototype object),它指向一个JavaScript对象。每个JavaScript对象都有一个原型对象。 在对象定义时,可以通过Object.cre…

    JavaScript 2023年6月10日
    00
  • JavaScript关于某元素点击事件的监听和触发

    下面是关于JavaScript中某元素点击事件的监听和触发的完整攻略: 监听点击事件 在JavaScript中,可以通过addEventListener方法监听元素的点击事件,方法需要两个参数,第一个参数是事件名称,第二个参数是要触发的回调函数。例如: // 获取元素 const btn = document.getElementById(‘btn’); /…

    JavaScript 2023年6月10日
    00
  • JavaScript BOM详解

    JavaScript BOM详解 BOM(浏览器对象模型,Browser Object Model)提供了与浏览器交互的API,它可以使我们控制浏览器窗口、控制浏览器的前进和后退、获取浏览器的位置和状态,甚至可以修改Web页面的外观和行为。本文将详细讲解JavaScript中BOM的特性和应用。 窗口对象 窗口对象是BOM中最关键的对象之一,它代表打开的浏览…

    JavaScript 2023年6月10日
    00
  • JavaScript Base64 作为文件上传的实例代码解析

    当我们需要在网页上进行文件上传操作时,在客户端与服务端之间进行数据的传输会遇到一些问题,其中最主要的一点就是兼容性问题。为解决这一问题,我们可以将文件内容转换为Base64编码的字符流,以字符串的形式传输到服务端,再由服务端进行解码,即可实现文件上传操作。 下面是JavaScript Base64 作为文件上传的实例代码解析: 一、将文件转成Base64编码…

    JavaScript 2023年5月27日
    00
  • JS数组扁平化(flat)方法总结详解

    JS数组扁平化(flat)方法总结详解 一、什么是数组扁平化? 数组扁平化是指将一个多维数组变成一个一维数组的操作。通俗点说,就是将多层嵌套的数组打平,使它们成为一个一层的数组。 二、数组扁平化的应用场景 在实际开发中,如果需要对多层嵌套的数组进行操作,就需要先进行扁平化处理,再进行其他操作。例如,我们可以对一个存储多个子元素和其子元素的数组进行扁平化处理,…

    JavaScript 2023年5月27日
    00
  • 小程序实现计时器功能

    下面是“小程序实现计时器功能”的完整攻略: 1. 准备工作 在开始编写计时器功能之前,需要先创建一个小程序项目,并在页面中引入 wx.createInnerAudioContext() 实现计时结束后的声音提示。 2. 计时器实现 2.1 变量定义和初始值设置 首先,需要在 data 中定义计时器相关的变量,例如当前计时器的状态、计时器显示的时间等: dat…

    JavaScript 2023年6月11日
    00
  • JS判断浏览器之Navigator对象

    一、在JS中判断用户的浏览器可以使用Navigator对象,具体的步骤如下: 1.获取Navigator对象。在JS中,可以通过window.navigator属性来获取Navigator对象。 2.获取浏览器信息。在Navigator对象中,有一些属性可以获取浏览器的信息,如: userAgent:浏览器的User Agent字符串,可以用来检测浏览器的类…

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