三.闭包
定义:1.函数嵌套函数
2.返回内层函数;
3.内层函数的返回值不会被释放;
局部变量可以被释放;全局变量是不会被释放的;
闭包的应用场景:如果你想访问函数体内的变量;那么就用闭包;
ps:闭包占用内存,请谨慎使用;
demo1
function outer(){
function inner(){
var num=10;
return num; //return的作用:1.返回值在函数上面;2.中断函数的执行!
}
var aa=inner();
return aa;
}
console.log(outer());//闭包函数执行顺序:先执行最里面的,然后层层往外;
//闭包函数
function outerFun1() {
var num = 11;
return function () {
num++;
return num;
}
}
var num=outerFun1();
console.log(num());//12
console.log(num());//13
console.log('*****************************************');
//普通函数
function outerFun2() {
var num = 11;
function inner() {
num++;
return num;
}
console.log(inner());
}
outerFun2();//11
outerFun2();//11
回调函数:
//回调函数的使用准则:你做你自己的事,我到了通知你。你----》就是回调函数
function fun1(num1,num2,fun){
fun(num1,num2);
}
var fun2=function(a,b){//回调函数
console.log(a+b);
};
fun1(100,200,fun2);
//回调函数的使用准则:你做你自己的事,我到了通知你。你—-》就是回调函数
//异步准则
function fun1(num1,num2,fun){
fun(num1,num2);
}
fun1(100,200,function(num1,num2){
console.log(num1+num2);
console.log(num1*num2);
});
四:作用域
定义:是指有序访问函数内部变量;
父级函数不能直接访问子级函数的变量;
子级函数可以直接访问父级函数的变量;