// 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