function a(){
let j = 10
let i = 10
console.log(i+j); //打印20
//初始化b
let b = function(){
//里面的方法,用到了外面方法定义的变量
//所以,i会一直存在于内存中
//这样的函数,我们又称之为:闭包函数
i += 5
console.log(i);
console.log('HelloWorld');
}
//a方法,返回b,而b也是一个方法
//方法的返回值是方法,这样的方法:也称之为,高阶方法。
return b //返回b
}
let c = a()
c()
c()
//计算器方法
function calc(num1,num2){
//num1和num2,只能在calc方法里面使用
return function(callback){
return callback(num1,num2)
}
}
//调用计算器方法,将需要计算的两个数传进去
let jsq = calc(100,20)
console.log(jsq((num1,num2)=> num1 + num2));
console.log(jsq(function(num1,num2){
return num1 - num2
}));
console.log(jsq(function(num1,num2){
return num1 * num2
}));
//简写
console.log(calc(200,20)((a,b)=>a / b));