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判断浏览器类型的方法
Aug 07 Javascript
JS数组的常见用法实例
Feb 10 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
May 07 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
Aug 22 Javascript
Javascript函数式编程语言
Oct 11 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
详解angular如何调用HTML字符串的方法
Jun 30 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
Jan 29 Javascript
JavaScript观察者模式原理与用法实例详解
Mar 10 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文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
浅析php数据类型转换
2014/01/09 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
js event事件的传递与冒泡处理
2009/12/06 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
xml转json的js代码
2012/08/28 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
介绍Python中的fabs()方法的使用
2015/05/14 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
孝敬父母的活动方案
2014/08/31 职场文书
对照检查剖析材料
2014/09/30 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
win10下go mod配置方式
2021/04/25 Golang
配置Kubernetes外网访问集群
2022/03/31 Servers