/*对象和函数会偷偷调用toString*/
var demo_fun = function(n){ console.log('per') } console.log(demo_fun); demo_fun.toString = demo_fun.toValue = function(){ console.log('Run toString , Run toValue'); return 'demo_fun' } console.log(demo_fun); var demo_obj = { i:10 } console.log(demo_obj); demo_obj.toString = demo_obj.toValue = function(){ console.log('Run toString , Run toValue'); return 'demo_obj'; } console.log(demo_obj);
/*题目*/
function add(n){ var res = n; var fun = function(n){ res += n; return fun; } fun.toString = fun.valueOf = function(){return res} return fun; } var a = add(1)(2)(3)(4); console.log(a);