Array.prototype.forEach.call(arguments,function(item){ num += item * 1 })
来源:2-57 Syntax(2)

德玛西亚之前端
2020-11-03
求详解
写回答
2回答
-
小张一号
2020-11-28
首先要了解这是一个反射
这样写与下面这样写是一样的结果
// Array.isArray(arguments ) === true arguments.forEach(item => (num += item * 1))
但是因为在编写代码的时候不确定参数具体是什么,所以在这里使用了数组原型上面的forEach,而数组原型上使用forEach的第一个参数时执行上下文, 也就是动态的设置了this指向, 第二个才是callback
10 -
慕粉1926294646
2020-11-06
这个代码的意思是遍历 arguments,然后把每个元素累计求和。Array.prototype.forEach 是一个函数,.call 就是改变这个函数的this指向到 arguments,后面的参数是 forEach 这个函数的参数,所以上面的代码等价为:arguments.forEach(function(item){num+=item*1})
00
相似问题