- 闭包缓存args值
- 返回函数本身,在参数基础上加上了缓存值
- 重写toString或valueOf函数,用于输出和相加
function add(args) {
var result = function(addend) {
return add(args + addend);
}
result.toString = result.valueOf = function() {
return args;
};
return result;
}