位置: 编程技术 - 正文

JavaScript中立即执行函数实例详解(js立即执行函数几种写法)

编辑:rootadmin

推荐整理分享JavaScript中立即执行函数实例详解(js立即执行函数几种写法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js setinterval立即执行,JavaScript中立即执行函数的作用,js立即执行函数几种写法,js立即执行函数和闭包,js setinterval立即执行,JavaScript中立即执行函数的作用,JavaScript中立即执行函数的作用,javascript立即执行函数,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

js立即执行函数可以让你的函数在创建后立即执行,js立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。

( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此。

下面话不多说了,来一起看看详细的介绍吧。

通常我们声明一个函数有以下几种方式:

如果你看过一些自定义控件的话你会发现他们大多数都是沿用这种写法:

这是我们常说的立即执行函数(IIFE),顾名思义,也就是说这个函数是立即执行函数体的,不需要你额外去主动的去调用,一般情况下我们只对匿名函数使用IIFE,这么做有两个目的:

一是不必为函数命名,避免了污染全局变量

二是IIFE内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。

如果看到这两句话无法理解,那么先从IIFE的运行原理说起。

因为IIFE通常用于匿名函数,这里就用简单的匿名函数作为栗子:

JavaScript中立即执行函数实例详解(js立即执行函数几种写法)

我们发现这里f只是这个匿名函数的一个引用变量,那么既然f()能够调用这个函数,我把f替换成函数本身可以么:

运行之后得到如下结果:

产生这个错误的原因是,Javascript引擎看到function关键字之后,认为后面跟的是函数声明语句,不应该以圆括号结尾。解决方法就是让引擎知道,圆括号前面的部分不是函数定义语句,而是一个表达式,可以对此进行运算,这里区分一下函数声明和函数表达式:

1、函数声明(即我们通常使用function x(){}来声明一个函数)

2、函数表达式(类似以这种的形式)

小学我们就学过用()括起来的表达式会先执行,就像下面这样:

其实在javascript中小括号也有相似的作用,Javascript引擎看到function关键字会认为是函数声明语句,那么如果Javascript引擎优先看到小括号会怎么样:

函数成功执行了:

这种情况下Javascript引擎就会认为这是一个表达式,而不是函数声明,当然要让Javascript引擎认为这是一个表达式的方法还有很多:

回到前面的问题,为什么说IIFE这种形式避免了污染全局变量,如果你见过别人写的jquery插件,里面通常会有类似这样的代码:

这里的jquery其实是该匿名函数的参数,联想一下我们调用匿名函数时候是用f()那么匿名带参数的就是f(args)对吧,这里把jquery作为参数传入该函数,那么在函数内部使用形参$的时候就不会影响到外部环境,因为有些插件也会用到$这个限定符,你在这个函数内部可以随意折腾。

以上,在此过程中参考了以下两篇文章:

javascript立即执行某个函数:插件中function(){}()再思考

JavaScript中的立即执行函数

总结

标签: js立即执行函数几种写法

本文链接地址:https://www.jiuchutong.com/biancheng/369726.html 转载请保留说明!

上一篇:javascript+jQuery实现360开机时间显示效果(jquery())

下一篇:详解使用React全家桶搭建一个后台管理系统(react用什么ui)

  • 给职工租房的房租怎么进行账务处理?
  • 未开票收入退回可以冲税吗
  • 实收资本印花税税率多少
  • 计提社保公积金的会计分录
  • 委托收款结算方式流程图
  • 零余额账户银行余额调节表
  • 营改增后税目税率表
  • 材料货款会计分录怎么做
  • 预收账款转收入附单据吗
  • 月末收到一批b材料,结算凭证未到,估价50000
  • 年终奖和工资个人所得税计算器
  • 年薪制有什么好处
  • 本年累计应交税费需要加上年初数吗
  • 企业所得税清算期间
  • 增值税小规模纳税人减免增值税
  • 展会展位费发票税率
  • 出售使用过的固定资产如何开票
  • 暂估入库企业所得税税率
  • 制造费用分摊的账务处理怎么做?
  • 过路费企业所得税汇算清缴计入什么科目?
  • 编制会计报表利润表
  • 各期预缴申报资产总额平均值之和
  • 政府无偿给企业划拨土地是否需摊销
  • 我想看一下这个月几日
  • 企业所得税退税怎么做账务处理
  • 企业出现销售折扣时如何处理
  • 软件和硬件的成本按销售占比做分摊怎么算
  • 去年的成本发票怎么做账
  • 【免费】多种方法手把手教你如何将自己做的网页做成网络链接(直接访问)
  • 公司购买基金怎样入账
  • 本期用于购建不动产的扣税凭证怎么填
  • win10远程桌面连接不成功
  • 进程核心栈
  • 备用金借款有利息吗
  • exedown是什么文件夹
  • PHP:pg_result_status()的用法_PostgreSQL函数
  • 游戏出现d3d11lostdevice
  • php readfile
  • 生育津贴如何做账
  • 湿地上有什么植物
  • vue get方法
  • tensorflow1 教程
  • CodeIgniter视图使用注意事项
  • php+oracle
  • 应付账款账户的期初贷方余额100元
  • 什么是进项票什么是成本票
  • chronyc配置
  • php分类
  • 金税盘怎么设置字体
  • 小规模纳税人增值税超过30万怎么纳税
  • 社保费用可以提前从工资扣吗
  • 5年前开的发票退货可以冲红吗?
  • 跨年度退回的公共预算支出
  • 美元利息结汇是属于外汇
  • 坏账核算备抵法的优缺点
  • 用承兑付货款怎么做会计
  • 公司没有车加油费怎么报
  • 绿植租赁怎么开票
  • 出口退税分类管理三类企业
  • 国家高新技术企业补贴
  • 固定资产安装费计入入账价值吗
  • 应纳税所得额收入总额包括
  • windows10创意者更新
  • 无法打开vmx86
  • win8怎么设置自动开机
  • U盘安装ubuntu的分区详细教程
  • linux mds
  • downloadplus.exe是什么进程 作用是什么 downloadplus进程是安全的吗
  • mmc.exe是什么
  • 一篇非常好的作文
  • Aero glass for win8.1开启aero透明磨砂效果图文教程
  • 史上最全的领域学说
  • shell脚本获取进程pid
  • unity游戏项目开发教程
  • js parseint parsefloat
  • 用python编写简单程序
  • 简述python语言
  • 广东增值税电子普通发票图片
  • 国家税务总局令第43号公告
  • 江西省税务局公众号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设