const functionFunction = (s) => {
const func = (str) => {
s += ',' + str;
return func;
}
func.toString = func.valueOf = () => s;
return func;
}
alert(functionFunction(2)(3)(4)) // 2,3,4
function functionFunction(str) {
var r = str;
var fn = function(str){
r += ',' + str;
return fn;
}
fn.toString = function(){return r}
return fn;
}
// fn 还是返回一个函数, 但是添加一个toString让fn的结果即是一个函数同样也可以隐式转换为字符串。