用js 實現一個無限極累加的函數, 形如:
add(1) //=> 1;
add(1)(2) //=> 2;
add(1)(2)(3) //=> 6;
add(1)(2)(3)(4) //=> 10;
以此類推...bash
alert()
或 console.log()
時,函數的 toString()
方法會被調用。function s(a) {
return a+1
}
console.log(s)
// undefined
複製代碼
function s(a) {
return a+1
}
s.toString = function() {
return 1
}
console.log(s)
// f 1
typeof(s)
// "function"
複製代碼
function add(a) {
function s(a) {
return a+1
}
s.toString = function() {
return a
}
return s
}
console.log(add(2)) // f 2
複製代碼
function add(a) {
function s(b) {
a = a + b
return s
}
s.toString = function() {
return a
}
return s
}
console.log(add(1)(2)(3)(4)) // f 10
複製代碼
收工~閉包