复习闭包知识

三:闭包和高阶函数

  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));
原文地址:https://www.cnblogs.com/junwu/p/5145437.html