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 相关文章推荐
js onpropertychange输入框 事件获取属性
Mar 26 Javascript
JS date对象的减法处理实现代码
Dec 28 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
JS 精确统计网站访问量的实例代码
Jul 05 Javascript
js通过元素class名字获取元素集合的具体实现
Jan 06 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
基于jQuery实现的文字按钮表单特效整理
Dec 07 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
Vue中util的工具函数实例详解
Jul 08 Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
python list转矩阵的实例讲解
2018/08/04 Python
Python调用C语言程序方法解析
2020/07/07 Python
django rest framework使用django-filter用法
2020/07/15 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
酒店办公室文员岗位职责
2013/12/18 职场文书
竞选演讲稿范文
2013/12/28 职场文书
大学毕业寄语大全
2014/04/10 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
少先队工作总结2015
2015/05/13 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫