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 相关文章推荐
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
js实现ATM机存取款功能
Oct 27 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 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 smarty的预保留变量总结
2008/12/04 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
django如何自己创建一个中间件
2019/07/24 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
python烟花效果的代码实例
2020/02/25 Python
Django中的session用法详解
2020/03/09 Python
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
爱情保证书大全
2014/04/29 职场文书
女生节标语
2014/06/26 职场文书
党课培训心得体会
2014/09/02 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL