匿名函数

匿名函数顾名思义就是没有名字的函数,在实际开发中经常会用到,也是JavaScript的重点。匿名函数又叫立即执行函数。


由于这种函数是匿名的,所以它不能被调用。
由于它不能被调用,所以如果它不立即执行的话就没有了意义。
由于它需要立即执行,所以在执行完之后匿名函数就会被销毁。
匿名自执行函数的作用就是用于闭包和创建独立的命名空间两个方面。


匿名函数的基本形式为(function(){…})();

前面的括号包含函数体,后面的括号就是给匿名函数传递参数然后立即执行。

匿名函数的作用是避免全局变量的污染以及函数名的冲突。


匿名自执行函数的作用

1.匿名自执行函数最常见的作用是用于实现闭包的情况中。
闭包:闭包是JavaScript的一种特性,我们可以通过闭包实现函数内外部的连接,并且可以使得函数的局部变量始终存在于内存中。

2.匿名自执行函数还可以用于在JavaScript中模拟创建块级作用域.
使用匿名自执行函数将某些代码包裹起来可以实现块级作用域的效果,减少全局变量的数量,在匿名自执行函数执行结束后变量就会被内存释放掉,从而也会节省了内存。


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

小括号有返回值,就是小括号内的函数或者表达式的返回值,所以小括号内的function返回值等于小括号的返回值。


写法
匿名函数的写法
1.先定义一个普通函数Cat()

function Cat(){alert("喵喵喵~~");
}

2.去掉函数的名字构建匿名函数
不包裹一个括号不符合语法要求,会报错!需要给匿名函数外边包裹一个括号才能运行。

(function (){alert("喵喵喵~~");
})()                        //()可省略

3.当匿名函数需要传值,将参数写到括号内

!(function (data){alert("喵喵喵~~"+data);
})("汪汪汪~~")

4种实现方式

//常见匿名函数://1,匿名函数的第一种实现方式(function(cat){alert(cat);})("喵喵喵~~");//2.匿名自执行函数的第二种实现方式(常用)jQuery (function(){alert("cat");}());//3.匿名自执行函数的第三种实现方式!function(cat){alert(cat);}("喵喵喵~~");//4.匿名自执行函数的第四种实现方式var fun=function(cat){alert(cat);}("喵喵喵~~");
//不常见匿名函数:~(function(){ alert('cat'); })();//效率最高void function(){ alert('cat'); }();+function(){ alert('cat'); }();-function(){ alert('cat'); }();~function(){ alert('cat'); }();!function(){ alert('cat'); }();//强制执行(function(){ alert('cat'); }());

匿名函数的应用
1.绑定事件

<input type="button" value="点击" id="btn">```javascript
var btn=document.querySelector("#btn");    //querySelector是H5中新增的查找dom元素的方法btn.οnclick=function(){alert("");}

2.应用对象

var obj={animal:"汤姆猫",voice:"喵喵喵~~",CAT:function(){return "我是"+this.animal+",我会"+this.voice+"叫!";}};alert(obj.CAT());

3.应用函数表达式

//将匿名函数赋值给变量cat
var cat=function(){return "喵喵喵~~"
}
//调用方式与调用普通函数一样
alert(cat());

4、回调函数的应用

setInterval(function(){console.log("我是每5秒执行一次的回调函数");
},5000);

5、返回值

function cat(){//返回匿名函数return function(){return "喵喵喵~~";}
}
//调用匿名函数
alert(cat()());
//或
var mao=cat();
alert(mao());

6.链式调用

(function(animal) { alert(animal); return arguments.callee; })('cat')('dog')('pig');

JavaScript匿名函数理解及应用相关推荐

  1. javascript匿名函数的理解

    复制粘贴 [color=red]点评:请记住,关键点是理解javascript的函数概念(参考w3cshool对函数的描述,搜索关键字:ECMAScript 函数).以及()的运算的理解. 比如:va ...

  2. 一家之言:谈谈JavaScript匿名函数(转)

    匿名函数的概念大家也许不会陌生,但是我相信下面的内容会打开一些新的思路. 我们知道函数的定义方式有两种: 1 function fn1(){alert('fn1 works');} 2 var fn2 ...

  3. javascript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 javascript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

  4. linux 运行函数名,JavaScript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 JavaScript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

  5. JavaScript匿名函数介绍

    JavaScript匿名函数介绍 匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高. JavaScript匿名函数最常见的用法: (function(){ //运行的代码 })(); ...

  6. javascript 匿名函数的理解

    代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他 ...

  7. 对JAVASCRIPT匿名函数的理解

    网上很多解释,我无法理解,我想知道原理...这篇文章应该可以透彻一点 Query片段: view plaincopy to clipboardprint? (function(){ //这里忽略jQu ...

  8. 对javascript匿名函数的理解(透彻版)

    Query片段: view plain copy to clipboard print ? (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我 ...

  9. javascript匿名函数及闭包深入理解及应用

    1.匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没有函数名的函数. 1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种: ...

最新文章

  1. 核磁共振影像数据处理-3-DTI基础、Li‘s have a solution and plan.
  2. 深度全解卷积神经网络(附论文)
  3. 小程序 获取用户信息
  4. VTK:网格之SplitPolyData
  5. access工具_工具篇之pycharm小技巧-httpclient
  6. 一些javascript免费中文书籍
  7. 手把手教你用Java实现一个简易联网坦克对战小游戏
  8. 反病毒软件技术简析与探索(2009年5月18日)
  9. SoapUI 入门指南
  10. Java编程练习题3
  11. VMware ESXi 7.0 U3 SLIC 2.6 Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动
  12. [推荐系统]互联网推荐系统比较研究
  13. 小程序进度条_【好玩的游戏大全】我的煎饼屋:好玩的摆摊微信小游戏小程序...
  14. 养龟村长讲解三线闭壳龟的重要性,对于养殖的你深刻了解多少?
  15. android su 程序,android 开发 制作自己的su
  16. Python编程之求自由落体高度
  17. HTML5期末大作业:手表商城网站设计——手表商城网站模板源码(17页) web期末作业设计网页_手表商城网页设计作业成品
  18. CSS浮动与定位 逆战班
  19. 其他笔记-Pycharm必备插件推荐
  20. VC 怎么获取windows7系统管理员权限

热门文章

  1. 电影视频服务器架设完全入门教程
  2. Jmeter----HTTP Request Defaults
  3. Github爆火!暗黑破坏2经典游戏开源,重温经典!
  4. Maven Setting文件详细配置
  5. fastDFS下载安装详细步骤
  6. 深入RocketMQ-消息原理篇
  7. Jenkins第一节:linux安装jenkins以及解决各种常见问题
  8. 一天一个IDEA小技巧之IDEA的target文件夹不见了怎么调出来
  9. Unity游戏开发之UGUI设计——制作一个游戏内置的控制台界面/作弊菜单(详细流程,附代码)
  10. api响应泛型参数 swagger_你还在用丝袜哥(Swagger)?今天不如换换口味!