最近碰到了一个这种写法

这个就是(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(){})()后面的()含义相关推荐

  1. Function.identity()的含义

    偶然之间发现的这个函数,感觉还是很有用的,尤其实在返回map的时候,value还为本身,用起来就很方便. Java 8允许在接口中加入具体方法.接口中的具体方法有两种,default方法和static ...

  2. TensorFlow2.0(八)--tf.function函数转换

    tf.function函数转换 1. 关于tf.function 2. tf.function 的实现 3. 关于@tf.function 1. 关于tf.function tf.function的官 ...

  3. 计算机中定义事物各种特点的术语,计算机科学中具有特殊含义或易溷淆的术语辨析(2版).doc...

    计算机科学中具有特殊含义或易溷淆的术语辨析(2版) 计算机科学中具有特殊含义或易混淆的术语辨析 术语的统一不同国家process和procedure 进程 process 和线程 thread arg ...

  4. 台湾国立大学郭彦甫Matlab教程笔记(6)user define function

    台湾国立大学郭彦甫Matlab教程笔记(6)user define function 这一部分是function的讲解 scripts vs. functions 1.scripts and func ...

  5. HTML5+移动APP开发中遇到的各种代码元素的含义(四)

    系列目录 跨平台移动APP开发中遇到的各种代码元素的含义(一) HTML5+移动APP开发中遇到的各种代码元素的含义(二) HTML5+移动APP开发中遇到的各种代码元素的含义(三) 目录 系列目录 ...

  6. 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法

    原文链接:https://blog.csdn.net/changqing5818/article/details/53932463 前言 今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的C ...

  7. jq 修改swal的标题_js-jquery-SweetAlert【一】使用

    一.下载安装 地址:http://t4t5.github.io/sweetalert/ 二.页面引用 当然还有jquery 三.示例 3.1.基础结构 swal("Here's a mess ...

  8. NLP未来,路在何方?12位巨佬联名指路!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 文 | Sheryc_王苏 美 | xxr CMU.华盛顿大学.南加州大学.MIT.M ...

  9. python中PIL模块

    Image模块 Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内.如open.save.conver.show-等功能. open类 Image ...

最新文章

  1. 训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...
  2. python 调用函数 开销_减少python中的函数调用开销
  3. 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死...
  4. 从UV位置图获得3D人脸
  5. crowd counting_[crowd_counting]-MANet_arxiv1901
  6. 你是否做好了代码的备份?
  7. 江苏计算机信息录入技师选拔考试题,2010年江苏省机关事业单位工人技师资格选拔考试试卷...
  8. Ubuntu开启或重启ssh服务
  9. 推荐几款好用的国产操作系统
  10. cpri带宽不足的解决方法_CPRI基带数据的低损耗压缩
  11. 联想硬盘保护系统 计算机名 后缀,联想硬盘保护系统,教您联想硬盘保护系统怎么安装...
  12. 百度网盘合集 没有不够全 只有你网盘不够大!!!
  13. 为什么白素贞能生文曲星转世许仕林? 和她的另一个身份有关
  14. Kepserver EX6配置opc ua服务端 以及客户端
  15. 浅谈远心镜头选择十大参数
  16. 基于鸢尾花数据和手写数字,决策树,随机森林,voting,bagging法的比较
  17. python爬取微博评论(通过xpath解析的方式)
  18. 【34】理解虚拟机:你在云上拿到的计算机是什么样的?
  19. 结构化查询语言(SQL)入门
  20. 【每日前端】CSS考拉海购和京东官网部分广告模块的实现

热门文章

  1. Matlab论文插图绘制模板第78期—进阶词云图
  2. Win10图片查看器打不开图片,报错内存不足
  3. “相濡以沫,不如相忘于江湖”
  4. android 取imei p10,纯干货 | 一般人不知道的几个华为P10小技巧
  5. adb 指令集说明详解[非常详细]
  6. 【《Linus Torvalds自传-Linux OS 之父》摘录】
  7. IDM(Internet Download Manager)—下载各类安装包(github代码、python包)、软件、视频、文档的神器,居家必备良药...
  8. linux 硬盘满了如何处理
  9. 【JZOJ2109】清兵线【dp】
  10. 婴儿奶瓶温度计的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告