0

A:

Array.prototype.forEach.call(item, function(el){
   console.log(el)
})

B:

item.forEach(function(el){
   console.log(el)
})

or:

item.forEach((el) => {
   console.log(el)
})

想请问高手这两种写法的差别是什么?
Array.prototype.forEach.call 主要作用是什么?

2019-03-15 提问
2 个回答
0

这种方式主要是用来让 arrayLike 对象使用 forEach。
例如:

var test = { 0: 'array', 1: 'like', length }
Array.prototype.forEach.call(test, i => console.log(i))

问题里贴得代码应该是用来遍历使用 querySelectorAll 而获得的 nodeList ,但是,现在 nodeList 已经有了原生的 forEach 方法,不用这种方式了。

0

第一种写法可用于类数组,比如{0: 'a', 1: 'b', length: 2} 这类数据,有些选择器(比如:document.getElementsByTagName,document.querySelectorAll )或arguments等查出的数据都是类数组而不是真数组

撰写答案

你可能感兴趣的

推广链接