(function(){})()后面的()含义
最近碰到了一个这种写法
这个就是(function(){})()
,有人说是一种函数闭包,实在是搞不懂后面的()是啥意思,查了查,有这么个解释:
是一种 立即执行函数 的写法,即IIFE (Immediately Invoked Function Expression)。这种函数在函数定义的地方就直接执行了。
IIFE函数的调用方式通常是将函数表达式、它的调用操作符、分组操作符放到一个括号内,来告诉解释器这里有一个需要立即执行的函数。否则通常情况下,解析器遇到一个function关键字,都会把它当做是一个函数声明,而不是函数表达式。
如下几种写法都是可以的:
(function foo(){/*...*/}());(function foo(){/*...*/})();!function foo() {/*...*/}();+function foo() {/*...*/}();-function foo() {/*...*/}();~function foo() {/*...*/}();
在需要表达式的场景下,就不需要用括号括起来了:
void function(){/*...*/}();var foo = function(){/*...*/}(); true && function () { /*...*/ }();0, function () { /*...*/ }();
void声明了不需要返回值,第二个则将IIFE函数的返回值赋给了foo。第三、第四个都是明确需要表达式的场景,所以解析器会认识这种写法。
对于IIFE函数,也可以给它们传入参数,例如:
(function foo(arg1,arg2,...){...}(param1,param2,...));
(function(){})()后面的()含义相关推荐
- Function.identity()的含义
偶然之间发现的这个函数,感觉还是很有用的,尤其实在返回map的时候,value还为本身,用起来就很方便. Java 8允许在接口中加入具体方法.接口中的具体方法有两种,default方法和static ...
- TensorFlow2.0(八)--tf.function函数转换
tf.function函数转换 1. 关于tf.function 2. tf.function 的实现 3. 关于@tf.function 1. 关于tf.function tf.function的官 ...
- 计算机中定义事物各种特点的术语,计算机科学中具有特殊含义或易溷淆的术语辨析(2版).doc...
计算机科学中具有特殊含义或易溷淆的术语辨析(2版) 计算机科学中具有特殊含义或易混淆的术语辨析 术语的统一不同国家process和procedure 进程 process 和线程 thread arg ...
- 台湾国立大学郭彦甫Matlab教程笔记(6)user define function
台湾国立大学郭彦甫Matlab教程笔记(6)user define function 这一部分是function的讲解 scripts vs. functions 1.scripts and func ...
- HTML5+移动APP开发中遇到的各种代码元素的含义(四)
系列目录 跨平台移动APP开发中遇到的各种代码元素的含义(一) HTML5+移动APP开发中遇到的各种代码元素的含义(二) HTML5+移动APP开发中遇到的各种代码元素的含义(三) 目录 系列目录 ...
- 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
原文链接:https://blog.csdn.net/changqing5818/article/details/53932463 前言 今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的C ...
- jq 修改swal的标题_js-jquery-SweetAlert【一】使用
一.下载安装 地址:http://t4t5.github.io/sweetalert/ 二.页面引用 当然还有jquery 三.示例 3.1.基础结构 swal("Here's a mess ...
- NLP未来,路在何方?12位巨佬联名指路!
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 文 | Sheryc_王苏 美 | xxr CMU.华盛顿大学.南加州大学.MIT.M ...
- python中PIL模块
Image模块 Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内.如open.save.conver.show-等功能. open类 Image ...
最新文章
- 训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...
- python 调用函数 开销_减少python中的函数调用开销
- 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死...
- 从UV位置图获得3D人脸
- crowd counting_[crowd_counting]-MANet_arxiv1901
- 你是否做好了代码的备份?
- 江苏计算机信息录入技师选拔考试题,2010年江苏省机关事业单位工人技师资格选拔考试试卷...
- Ubuntu开启或重启ssh服务
- 推荐几款好用的国产操作系统
- cpri带宽不足的解决方法_CPRI基带数据的低损耗压缩
- 联想硬盘保护系统 计算机名 后缀,联想硬盘保护系统,教您联想硬盘保护系统怎么安装...
- 百度网盘合集 没有不够全 只有你网盘不够大!!!
- 为什么白素贞能生文曲星转世许仕林? 和她的另一个身份有关
- Kepserver EX6配置opc ua服务端 以及客户端
- 浅谈远心镜头选择十大参数
- 基于鸢尾花数据和手写数字,决策树,随机森林,voting,bagging法的比较
- python爬取微博评论(通过xpath解析的方式)
- 【34】理解虚拟机:你在云上拿到的计算机是什么样的?
- 结构化查询语言(SQL)入门
- 【每日前端】CSS考拉海购和京东官网部分广告模块的实现
热门文章
- Matlab论文插图绘制模板第78期—进阶词云图
- Win10图片查看器打不开图片,报错内存不足
- “相濡以沫,不如相忘于江湖”
- android 取imei p10,纯干货 | 一般人不知道的几个华为P10小技巧
- adb 指令集说明详解[非常详细]
- 【《Linus Torvalds自传-Linux OS 之父》摘录】
- IDM(Internet Download Manager)—下载各类安装包(github代码、python包)、软件、视频、文档的神器,居家必备良药...
- linux 硬盘满了如何处理
- 【JZOJ2109】清兵线【dp】
- 婴儿奶瓶温度计的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告