-
使用构造函数和对象的方式,实现累加器:
本质上还是闭包
function Compute() {
var result = 0;
// 累加
this.add = function () {
result = 0;
return loop(arguments, "add", result);
};
// 累乘
this.mul = function () {
result = 1;
return loop(arguments, "mul", result);
};
// 处理函数
function loop(args, methods, result) {
for (var i = 0; i < args.length; i++) {
var item = args[i]; // for循环小技巧
switch (methods) {
case "add":
result += item;
break;
case "mul":
result *= item;
break;
}
}
return result;
}
// 隐式return this; 本质上还是闭包
}
var computer = new Compute();
console.log(computer.add(1, 2, 3));
console.log(computer.mul(1, 2, 3, 4, 5));
// 实现一个累加器
function computer(){
var num = 0;
function add() {
console.log(++num);
}
return add;
}
// 累加10次
var n = 10,
add = computer();
while(n--) {
add();
}
网友评论