三:闭包和高阶函数
3.1 闭包
闭包的作用域
闭包的生存周期
闭包的更多作用 1、封装变量
var mult = (function(){
var cache = {};
var calcuate = function(){
var a =1;
for(var i=0 ,l=arguments.length;i<l;i++){
a = a*arguments[i];
}
return a;
}
return function(){
var args = Array.prototype.join.call(arguments,',');
if(args in cache){
return cache[args];
}else{
return cache[args] = calcuate.apply(null,arguments)
}
}
})()
console.log(mult(1,2,3,4));