首先实现一个简单闭包 传入一个参数
function add (x) {
var count = x;
function add2 () {
return count += 1;
}
return add2;
}
var result = add(0);
console.log(result); //打印一个函数add2
console.log(result()); //1
console.log(result()); //2
传入两个参数
function add(x) {
var count = x;
function add2 (y) {
return count += y;
}
return add2;
}
var result = add(0);
console.log(result); //打印函数add2
console.log(result(1)); //1,相当于console.log(add1(0)(1))
console.log(result(2)); //3
传入三个参数
function add (x) {
var count = x;
function add2 (y) {
var num = x + y;
function add3 (z) {
return num += z
}
return add3;
}
return add2;
}
var result = add(1);
console.log(result); //打印函数add2
console.log(result());//打印函数add3
console.log(result(2)(3));//6
// 可以采用链式操作调用
// console.log(add(1)(2)(3)); //6
网友评论