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页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 Javascript
JS打印组合功能
Aug 04 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
vue-cli中的webpack配置详解
Sep 25 Javascript
vue实现动态按钮功能
May 13 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
vue 解决异步数据更新问题
Oct 29 Javascript
vue开发移动端底部导航条功能
Apr 08 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
JSON格式化输出
2014/11/10 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
python发送伪造的arp请求
2014/01/09 Python
python文件和目录操作方法大全(含实例)
2014/03/12 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
Python列表切片常用操作实例解析
2019/12/16 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
综合素质自我评价怎么写
2014/09/14 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
居住证明范文
2015/06/17 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers