js匿名函数的调用示例(形式多种多样)


Posted in Javascript onAugust 20, 2014

匿名函数就是没有实际名字的函数。

javaScript的匿名函数形式多样,而且不搞清楚,容易看晕代码。

以下是成功调用的匿名函数:

(function () {

alert(3);

})

();
(function f1() {

alert(4);

})(); //不是匿名函数也能这样调用!!
void function(){

alert('void water');

}();//据说效率最高,Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

!function(){

alert('!water');

}(); //运算符+匿名函数调用
(function(){

alert('water');

}());//小括号+匿名函数,有点强制执行的味道~

使用匿名函数也要注意经常犯的错误:
//错误写法1

(function f1() {

alert(5);

})f1(); //这不是匿名函数了!
//错误写法2

(function () {

alert(6);

}); //语法没有错误,没有调用的匿名函数,后面也没有机会调用了,因为没有名字,找不到调用入口。
//错误写法3

function () {

alert(1);

}();//没有产生函数的引用就调用

另外要注意理解小括号的作用。

小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。

Javascript 相关文章推荐
到处都是jQuery选择器的年代 不了解它们的性能,行吗
Jun 18 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
jquery实现无限分级横向导航菜单的方法
Mar 12 Javascript
javascript实现仿腾讯游戏选择
May 14 Javascript
JS实现两表格里数据来回转移的方法
May 28 Javascript
javascript实现秒表计时器的制作方法
Feb 16 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
微信小程序基础教程之echart的使用
Jun 01 Javascript
javascript对中文按照拼音排序代码
Aug 20 #Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 #Javascript
JS中实现简单Formatter函数示例代码
Aug 19 #Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 #Javascript
[原创]推荐10款最热门jQuery UI框架
Aug 19 #Javascript
js选择并转移导航菜单示例代码
Aug 19 #Javascript
js遍历子节点子元素附属性及方法
Aug 19 #Javascript
You might like
自定义php类(查找/修改)xml文档
2013/03/26 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
layui实现三级联动效果
2019/07/26 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
Python Django基础二之URL路由系统
2019/07/18 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
Django视图类型总结
2021/02/17 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
医院门卫岗位职责
2013/12/30 职场文书
学校联谊活动方案
2014/02/15 职场文书
刑事代理授权委托书
2014/09/17 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
Go 语言中 20 个占位符的整理
2021/10/16 Golang
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Python时间操作之pytz模块使用详解
2022/06/14 Python