我简单理解js中call的用法,是用来改变this指向的。比如:var fn1=function(){ console.log(1);}var fn2=function(){ console.log(2);}fn1.call(fn2);这个时候fn2中的this指向fn1,并且输出1.但是对下面的写法不理解,elements为一个NodeList集合。var elements=document.querySelectorAll('div');Array.prototype.forEach.call(elements,(element)=>{ console.log(element)});我不理解的是call中的第二个参数怎么是执行的forEach中的callback呢?为什么要把callBack放在call里面执行?call中的参数不是这个好像?实在理解不了这种写法?谢谢。
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
如果换种写法
Array.from(elements).forEach((element)=>{console.log(element)});
能理解吗
NodeList不是js原生Array,所以要使用Array里的一些方法得需要一些奇怪的技巧
添加回答
举报
0/150
提交
取消