写了一个函数,如下:
function add(){
let arr = [];
arr = arr.concat(Array.prototype.slice.apply(arguments))
let fun = function(){
arr = arr.concat(Array.prototype.slice.apply(arguments))
return fun
}
fun.toString = function(){
console.log(222)
return arr.reduce(function(total, num){
return total+num
}, 0)
}
return fun
}
console.log(add(1,2)(2,3)(3))
函数的作用就是累加参数求值,但是问题来了,下面是chrome的输入:
有两个问题:
为什么不是直接输出11,而是f 11
为什么不是先输出222呢,感觉是要先做类型转换再打印呢
问题并没有结束,同样的代码在FF上的输出:
怎么把fun函数输出来了......
还有node输出:
彻底懵逼了......
相关分类