一般大家看到的 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
至于為啥這樣就能列印!大家自行研究啊,哈哈哈