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 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
C++中的string类的用法小结
Aug 07 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
Sep 14 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
Vue-CLI 3 scp2自动部署项目至服务器的方法
Jul 24 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自动选择 连接本地还是远程数据库
2010/12/02 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
商务日语毕业生自荐信
2013/11/23 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
代理协议书
2014/04/22 职场文书
健康证明
2015/06/19 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
运动会广播稿50字
2015/08/19 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
Java版 单机五子棋
2022/05/04 Java/Android
VUE递归树形实现多级列表
2022/07/15 Vue.js