JavaScript中匿名函数的用法
函数定义
函数定义分为三种
1、构造函数
var fun=newFunciton()
2、普通定义
function fun(){}
3、函数式定义
varfun=function(){};
这三种方式都可以定义函数fun。
匿名函数定义
匿名函数顾名思义指的是没有名字的函数,匿名函数——没有实际名字的函数。
匿名函数的应用场景:
1.事件
<input type="button" value="btn" id="sub"> <script> //获得按钮元素 var sub = document.querySelector("#sub"); //给按钮增加点击事件。 sub.onclick=function(){ alert("当点击按钮时会执行"); } </script>
2.对象
var obj = { name:"lynn", age:18, fn:function(){ return "我叫"+this.name+"今年"+this.age+"岁了!"; } }; console.log(obj.fn());//我叫lynn今年18岁了!
3.函数表达式
//将匿名函数赋值给变量fn。 var fn = function(){ return "2020" } //调用方式与调用普通函数一样 console.log(fn());// 2020
4.回调函数
setInterval(function(){ console.log("回调函数,每次1秒钟会被执行一次"); },1000);
5.返回值
//将匿名函数作为返回值 function fn(){ //返回匿名函数 return function(){ return lynn"; } } //调用匿名函数 console.log(fn()());//lynn //或 var box=fn(); console.log(box());//lynn
6.模仿块级作用域
块级作用域,有的地方称为私有作用域。JavaScript中是没有块级作用域的,例如:
if( 1 == 1 ){ //条件成立,执行if代码块语句。 var a = 12; //a为全局变量 } console.log(a);//12 for( var i= 0; i < 3; i++){ console.log(i); } console.log(i);//4
匿名函数的作用:
1、通过匿名函数可以实现闭包。闭包是可以访问在函数作用域内定义的变量的函数。若要创建一个闭包,往往都需要用到匿名函数。
2、模拟块级作用域,减少全局变量。执行完匿名函数,存储在内存中相对应的变量会被销毁,从而节省内存。再者,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题。