函数定义
函数定义分为三种
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、模拟块级作用域,减少全局变量。执行完匿名函数,存储在内存中相对应的变量会被销毁,从而节省内存。再者,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题。