关于js中的call的应用?

我简单理解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中的参数不是这个好像?实在理解不了这种写法?

谢谢。


海绵宝宝撒
浏览 503回答 1
1回答

拉丁的传说

如果换种写法Array.from(elements).forEach((element)=>{console.log(element)});能理解吗NodeList不是js原生Array,所以要使用Array里的一些方法得需要一些奇怪的技巧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript