返回顶部
首页 > 资讯 > 前端开发 > node.js >为什么停止使用JavaScript IIFE!
  • 951
分享到

为什么停止使用JavaScript IIFE!

2024-04-02 19:04:59 951人浏览 八月长安
摘要

为什么停止使用javascript IIFE!,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript语言中,IIFE代表立即调

为什么停止使用javascript IIFE!,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

JavaScript语言中,IIFE代表立即调用函数表达式,它是一个定义后即刻执行的函数。

为什么我说别再在代码中编写IIFE了?本文将给你答案。

可以在JavaScript中定义Block-Scoped 变量

es6作为标准发布,你可以使用let和const声明块级作用域的变量和常量。它还引入了独立块,可以将变量和常量隔离到外部无法使用的自身块中。

例如,可以写:

{ let x = 1;}

那么x对外不可用。

这要比以下代码清晰许多:

(()=>{   let x = 1; })();

现如今,几乎所有浏览器都支持ES6,停止使用IIFE能将变量从外部分离。

另一种隔离变量的方法是使用模块,它也得到广泛支持。只要不将其导出,其他模块就无法使用。

不再需要闭包

闭包是返回另一个函数的函数。返回的函数能够运行在其外部的代码,但内部的代码则由闭包函数运行。

例如,它可能会产生:

const id = (() => {   let count = 0;   return () => {     ++count;     return `id_${count}`;   }; })();

而既有了块和模块以隔离数据,上述函数就变得更加复杂和不必要了。

可以将所有函数放入其自身模块,这样就不必担心暴露数据了,但这也会产生副作用。由于不是纯函数,很难对其进行测试

在可以避免嵌套的时候,返回函数的函数也会引入嵌套,所以它比没有返回函数的函数更易混淆。用模块代替是最好的方法。使用模块可以编写:

let count = 0;export const id =() => {   ++this.count;   return `id_${count}` }

上面代码中,有相同的count声明且导出了id函数,以供其他模块使用。这像IIFE一样,隐藏了count并暴露出我们想要的函数,但是嵌套较少,不需要定义另一个函数来运行它。

别名变量

同样,写如下内容:

window.$ = function foo() {   // ... };(function($) {   // ... })(Jquery);

使用模块就可以编写,为何还要仅为给变量创建别名而编写IIFE?利用模块,可以导入不同名称的内容。

你可以这样为变量创建别名的编写方式:

import { $ as jQuery } from"jquery";const $ = () => {};

此外,不要给窗口对象添加新属性,这会影响全局作用域。

为什么停止使用JavaScript IIFE!

捕捉全局对象

使用globalThis,就不必担心不同作用域中全局对象的名称问题,它正在成为一种标准。无需再使用IIFE以捕获全局对象,你可以在区域顶级编写如下内容:

(function(global) {   // ... })(this);

甚至即使在“globalThis”之前,编写如下内容设置全局对象也不太难:

const globalObj = self || window|| global;

或者如果想更精确,可以写:

const getGlobal = () => {   if (typeof self !== 'undefined') {return self; }   if (typeof window !== 'undefined') {return window; }   if (typeof global !== 'undefined') {return global; }   throw new Error('unable to locateglobal object'); };

不必通过IIFE添加额外函数调用和引入嵌套。

优化压缩

应用JavaScript模块,就不必用IIFE隔离代码,这可以适当地压缩文件。

网络包、浏览、包裹、汇总等(webpack、Browserify、Parcel、Rollup等程序),都可以正确处理模块,为何不用这些程序来创建更清晰的代码。

在代码中编写IIFE了已经过时了,它还增加了额外的函数定义和嵌套。2020年,请选择使用模块和块来分离代码!

关于为什么停止使用JavaScript IIFE!问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网node.js频道了解更多相关知识。

--结束END--

本文标题: 为什么停止使用JavaScript IIFE!

本文链接: https://lsjlt.com/news/82560.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 为什么停止使用JavaScript IIFE!
    为什么停止使用JavaScript IIFE!,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript语言中,IIFE代表立即调...
    99+
    2024-04-02
  • 为什么要停止在JavaScript中使用类
    为什么要停止在JavaScript中使用类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。多年来,OOP(面向对象编程)是软件工程中的事实上的标...
    99+
    2024-04-02
  • TypeScript之为什么停止使用any
    这篇文章主要介绍“TypeScript之为什么停止使用any”,在日常操作中,相信很多人在TypeScript之为什么停止使用any问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 怎么使用javascript停止页面刷新
    这篇文章主要介绍“怎么使用javascript停止页面刷新”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用javascript停止页面刷新”文章能帮助大家解决问题。一、默认情况下的页面刷新当我...
    99+
    2023-07-06
  • 什么情况下停止使用golang
    在现代编程领域中,Golang (又称 Go) 已经成为一个热门的编程语言。Golang 的设计目标是为了创建高效、可读性强、易于维护和编写的编程语言。它让编程变得更加简单,且在大规模高并发的应用程序开发上表现良好。然而,我们也需要看到问题...
    99+
    2023-05-14
  • 如何用javascript停止执行
    本篇内容介绍了“如何用javascript停止执行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • XP停止服务是什么意思?停止服务后还能继续使用吗?
    微软从今天开始正式停止对Windows XP系统更新,各大媒体也纷纷对XP停止服务进行了大量的相关报道。笔者在各大媒体的报道评论中,发现不少网友对比XP停止服务时什么意思,以及对于XP停止服务后还能用吗,充满疑问,以下笔...
    99+
    2023-06-04
    XP 停止服务 意思
  • 什么是JavaScript中的IIFE(Immediately Invoked Function Expression)?它的作用是什么?
    聚沙成塔·每天进步一点点 ⭐ 专栏简介⭐ JavaScript中的IIFE⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以...
    99+
    2023-09-25
    javascript 状态模式 开发语言
  • vps定位怎么停止使用
    要停止使用VPS,您可以按照以下步骤进行操作:1. 登录到VPS的控制面板或者使用SSH连接到VPS。2. 在控制面板中,找到停止或...
    99+
    2023-09-14
    vps
  • Win8什么时候停止服务
    Windows 8的主流支持已于2018年1月9日结束。根据微软的支持策略,主流支持阶段通常为操作系统的前五年左右。这意味着从这个日...
    99+
    2023-09-01
    Win8
  • JavaScript为什么避免使用with()
    这篇文章主要为大家展示了“JavaScript为什么避免使用with()”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript为什么避免使用with...
    99+
    2024-04-02
  • 停止维护的CentOS6该怎么使用Yum
    这篇文章将为大家详细讲解有关停止维护的CentOS6该怎么使用Yum,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。距离CentOS 6在2020年11月结束进入EOL(Reaches End...
    99+
    2023-06-15
  • Go语言break停止语句怎么使用
    这篇文章主要介绍“Go语言break停止语句怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言break停止语句怎么使用”文章能帮助大家解决问题。在Go语言中,break停止语句用于循环...
    99+
    2023-07-05
  • Android Compose之Animatable动画停止怎么使用
    本篇内容主要讲解“Android Compose之Animatable动画停止怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android Compose之Anima...
    99+
    2023-07-05
  • js怎么停止setInterval调用
    要停止setInterval调用,可以使用clearInterval函数来清除定时器。 首先,使用setInterval函数创建一个...
    99+
    2023-10-21
    js
  • linux停止mysql的方法是什么
    要在Linux系统中更详细地停止MySQL数据库服务,您可以按照以下步骤操作: 使用systemctl命令: 在大多数常见的Lin...
    99+
    2024-03-11
    linux mysql
  • Win8什么时候停止服务?Win8.1系统停止服务时间介绍
    随着Win10系统逐渐成为主流,上一代Win8也逐渐成为过去,微软继停止winXP系统安全服务后,近日,微软近日正式公布了Windows 8系统的停止服务时间,一起来了解下吧。 Win8什么时候停止服务? ...
    99+
    2022-06-04
    什么时候 时间 系统
  • win7什么时候停止更新?win7系统停止服务时间曝光
      很多网友问win7什么时候停止更新下文将告诉大家win7系统停止服务时间,xp系统已经离我们远去了,下一位停止更新的就是win7系统,具体是什么时候呢让我们通过下文来了解吧。      Win...
    99+
    2023-06-04
    win7 停止更新 win7系统 服务 系统 时间
  • matlab暂时停止执行函数怎么使用
    在MATLAB中,可以使用`pause`函数来暂时停止程序的执行。该函数的语法如下: pause 执行该函数后,程序会暂时停止执行,...
    99+
    2023-10-24
    matlab
  • 阿里云服务器怎么停止使用了
    如果您的阿里云服务器因为违反服务条款而被停止使用,您可以按照阿里云服务器的网站上的指引来执行操作: 关闭阿里云服务器,并将相关资源和服务转移到其他服务。 联系阿里云服务器的客户服务团队,他们可以帮助您解决问题并恢复您的数据。 如果您认为...
    99+
    2023-10-27
    阿里 使用了 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作