匿名函数的使用场景
匿名函数:没有名字的函数
1:绑定事件
document.onclick = function(){
}
2:作为等号的右值
let fun = function(){
}
setInterval(fun,2000);
3:可以作为函数的参数,回调函数
setInterval(function(){
},2000)
匿名函数的本质就是一个对象-->对象如何使用,匿名函数就可以如何使用
4:函数也可以作为函数的返回值,学习闭包的前置条件
(自运行:一个匿名函数在定义完自动运行,学习闭包的前置条件)
function fun(){
return function(){
}
}
闭包
闭包的概念:函数嵌套函数,被嵌套的函数称为闭包函数
闭包的作用:在一个函数体外,使用了函数的局部变量
闭包的实现:1:在主函数(f1)中定义内部变量(count),及子函数(f2)
2:在子函数(f2)中使用主函数(f1)的内部变量(count)
3:将子函数(f2)作为主函数(f1)的返回值
4:在外界通过全局变量f绑定了f1的返回值f2,从而延长了f2的生命周期,使得count 可以在f1外界使用
function f1(){
var count = 0;
var f2 = function(){
++count;
return count;
}
return f2;
}
let f = f1()
console.log(f())
console.log(f())
闭包的完全体:
let f1 = (function(){ //自运行
var count = 0;
return function(){
return ++count;
}
}());
console.log(f());
console.log(f());
arguments
作用;围绕着不定参函数
arguments :获取实参的伪数组
function f(){
for(let i = 0;i<arguments.length;i++){
console.log(arguments[i])
}
}
f(1,2,3)