JS 自执行函数原理及用法


Posted in Javascript onAugust 05, 2019

js自执行函数,听到这个名字,首先会联想到函数。接下来,我来定义一个函数:

function aaa(a,b){
  return sum = a + b
}

定义了一个名为aaa的函数,在里面可以计算两个数的和。如果想执行它,就必须得调用它,并且还得给它传参:

var aa = aaa(1,2)

这样就实现了一个函数的定义与调用,通过console.log我们可以看到sum实现了两个数的相加。

自执行函数是什么?自执行函数就是当它被定义出来,就会自动执行的函数。不需要调用,传参也很方便。就上面的函数,用自执行函数定义就是这样:

(function aaa(a,b){
  return sum = a + b
;})(1,2)

通过控制台可以发现sum实现了两个数的相加。

自执行函数有三种写法:

1.( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” )

2.( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " ) )

3.! function ( " 参数 " ) { " 函数方法 " ; } ( " 给参数传的值 " ) 

第三种!可以换作其他运算符或者void。

自执行函数是很自私的,它的内部可以访问全局变量。但是除了自执行函数自身内部,是无法访问它的。例:

function aaa(a1,b1){
  return sum1 = a1 + b1
},
(function bbb(a2,b2){
  return sum2 = a2 + b2
;}(),
console.log(aaa)
console.log(bbb)

这是一个函数与一个自执行函数,输出这两个函数会发现:函数aaa被全部打印出来,而bbb则报错。自执行函数相当于一个瓶口朝下的杯子,当定义它的时候,它会倾斜,把杯口露出来,吸收外面的新鲜空气;当它执行完毕,杯口不再外露,紧闭起来,与外界再无关联。

Javascript 相关文章推荐
jQuery中removeProp()方法用法实例
Jan 05 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
Jan 21 Javascript
Angularjs使用指令做表单校验的方法
Mar 31 Javascript
Vue AST源码解析第一篇
Jul 19 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 Javascript
JavaScript中交换值的10种方法总结
Aug 18 Javascript
JavaScript ES6的函数拓展
Jan 18 Javascript
jQuery提示框插件SweetAlert用法分析
Aug 05 #jQuery
Nuxt.js实战和配置详解
Aug 05 #Javascript
Vue组件间通信 Vuex的用法解析
Aug 05 #Javascript
前后端常见的几种鉴权方式(小结)
Aug 04 #Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
Aug 04 #Javascript
vue v-for 使用问题整理小结
Aug 04 #Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 #Javascript
You might like
php中的登陆login
2007/01/18 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
学生实习推荐信范文
2013/11/26 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL