jQuery和原生JS中 this 的区别

https://img4.mukewang.com/5c2c64300001110b04970557.jpg

如题 ,我给test和test2分别用原生JS和jQuery实现了相同的功能,代码结构也几乎相同;可是在click事件处理函数中的回调函数中输出this,一个指向window,一个指向li。
有点不明白,,不应该都是指向window吗,jQuery是否做了特殊的处理??谢谢

波斯汪
浏览 875回答 1
1回答

holdtom

题主题中的问题其实不是click事件回调中的this指向,而是Array.prototype.map与jQuery.each里面回调的this指向分别是什么。先看map,Array.prototype.map,有两个参数,第二个thisArg,意为callback执行时this的指向,题中未指定这个参数,所以callback中this指向window(非严格模式下)。再看each,定位到jQuery.each代码位置,可以清楚的看到callback.apply( obj[ i ], args ),所以callback在执行的时候this指向当前遍历到的原生DOM对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript