如题 ,我给test和test2分别用原生JS和jQuery实现了相同的功能,代码结构也几乎相同;可是在click事件处理函数中的回调函数中输出this,一个指向window,一个指向li。有点不明白,,不应该都是指向window吗,jQuery是否做了特殊的处理??谢谢
1 回答
holdtom
TA贡献1805条经验 获得超10个赞
题主题中的问题其实不是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对象。
添加回答
举报
0/150
提交
取消