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 相关文章推荐
javascript插入样式实现代码
Feb 22 Javascript
js实现的捐赠管理完整实例
Jan 20 Javascript
JavaScript中定义类的方式详解
Jan 07 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
js实现加载更多功能实例
Oct 27 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
简单易懂的天气插件(代码分享)
Feb 04 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
vue 自定义提示框(Toast)组件的实现代码
Aug 17 Javascript
小程序如何定位所在城市及发起周边搜索
Feb 11 Javascript
Vue接口封装的完整步骤记录
May 14 Vue.js
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 SQL之where语句生成器
2009/03/24 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
js中设置元素class的三种方法小结
2011/08/28 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
深入浅析Python代码规范性检测
2020/07/31 Python
python 深度学习中的4种激活函数
2020/09/18 Python
python中turtle库的简单使用教程
2020/11/11 Python
python help函数实例用法
2020/12/06 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
生物技术专业研究生自荐信
2013/09/22 职场文书
应届生服务员求职信
2013/10/31 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
电子信息工程自荐信
2014/05/26 职场文书
车间核算员岗位职责
2014/07/01 职场文书
医院合作协议书
2014/08/19 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
大连星海广场导游词
2015/02/10 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python