一般大家看到的 add(1)(2)(3) 这种,大家看到的大部分都是
function add(x) {
var sum = x;
var fn = function (y) {
sum = sum + y;
return fn;
};
// 一般 toString 和 valueOf 只写一个
fn.toString = ()=>{
return sum
};
fn.valueOf = ()=>{
return sum
};
return fn;
}
console.log(add(1)(2)(3)); //6
告诉你输出 6,其实打印出来的是:[Function: fn] { toString: [Function], valueOf: [Function] }
这是就涉及到一个toString和valueOf的调用问题,这里大家自行百度!
我告诉你怎么打印出6
console.log(add(1)(2)(3)+''); //6
console.log(+add(1)(2)(3)); //6
console.log(add(1)(2)(3).valueOf()); //6
console.log(add(1)(2)(3).toString()); //6
至于为啥这样就能打印!大家自行研究啊,哈哈哈