SOURCE

// var add = function(x) { 
//   var sum = 1; 
//   var tmp = function(x) { 
//       console.log('x=',x);
//       sum = sum + x; 
//       return tmp;    
//   } 
//   tmp.toString = function() { 
//       return sum; 
//   }
//   return tmp; 
// } 
// var b = add(4);//外部函数的调用
// console.info(add()(9)(3))//第一个小括号是外部函数的调用

function fun(n,o) {
    console.log(o);
    return {
         fun:function(m) {
               return fun(m,n);
         }
    };
}
var a = fun(0);  //undefined
a.fun(1);  //0  
a.fun(2);  //0  
a.fun(3);  //0  
var b = fun(0).fun(1).fun(2).fun(3);   //undefined  0  1  2
var c = fun(0).fun(1);  
c.fun(2);  
c.fun(3);  //undefined  0  1  1


function fn1(){
   var arr = [];
   for(var i = 0;i < 5;i ++){
	 arr[i] = function(){
		 return i;
	 }
   }
   return arr;
}
var list = fn1();
for(var i = 0,len = list.length;i < len ; i ++){
   console.log(list[i]());
}  //5 5 5 5 5
function fn(){
  var arr = [];
  for(var i = 0;i < 5;i ++){
	arr[i] = (function(i){
		return function (){
			return i;
		};
	})(i);
  }
  return arr;
}
var list = fn();
for(var i = 0,len = list.length;i < len ; i ++){
  console.log(list[i]());
}  //0 1 2 3 4









// var i = 0;
// function outerFn(){
    
//     function innerFn(){
//         i++;
//         console.log(i);
//     }
//     return innerFn;
// }

// var inner = outerFn();
// inner();
// inner();
// inner();
// inner();
// var inner2 = outerFn();
// inner2();
// inner2();
// inner2();
// inner();

// var inner3 = outerFn();
// var inner4 = outerFn();
// inner3();
// inner4();
// inner3();
// inner4();
console 命令行工具 X clear

                    
>
console