callback.call()和callback() 的区别
jQuery中each方法的实现使用call方法,call方法可以设置上下文,第一,在下例中数组each效果一样,为什么不直接调用呢?
if (likeArray(elements)) {
for (i = 0; i < elements.length; i++) {
callback(i, elements[i]);
}
}
if (likeArray(elements)) {
for (i = 0; i < elements.length; i++) {
if (callback.call(elements[i], i, elements[i]) === false) break;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Function.call
第一个问题:
通过call 可以改变this的指向。
不使用 call方式调用,没有使用this。
jQuery.each 应该就是使用 call 修改 的 this 指向;
没看 jQuery 源代码,用 callback.call 山寨个,应该实现方式是一样的。
注意:this,如果没有 使用 call,在回调函数中是没法使用 this 的。
第二个问题:
为什么each 不用用 callback,因为你写错了,函数传参数必须使用 括号。