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

1
0

慕粉1926294646

2020-11-06

这个代码的意思是遍历 arguments,然后把每个元素累计求和。Array.prototype.forEach 是一个函数,.call 就是改变这个函数的this指向到 arguments,后面的参数是 forEach 这个函数的参数,所以上面的代码等价为:arguments.forEach(function(item){num+=item*1})

0
0

再学JavaScript ES(6-10)全版本语法大全

前端无门槛学习,从ES6到ES10,一套课程掌握JS最新语法

1182 学习 · 336 问题

查看课程