/*
多个参数分别相加,单个函数内的参数相乘
-
4 + 2 * 3 + 10 = 20
*/
function add () {
console.log('进入add');
var args = Array.prototype.slice.call(arguments);
// 处理参数
var fn = function () {
console.log('调用fn');
var arg_fn = Array.prototype.slice.call(arguments);
var temp = 1;
arg_fn.forEach(val => {
temp *= val;
});
arg_fn = [temp]
return add.apply(null, args.concat(arg_fn));
}
// 重写 toString 方法
fn.toString = function () {
console.log('调用toString');
return args.reduce(function(a, b) {
return a + b;
})
}return fn;
}
add(4)(2, 3)(10);