javascript – indexOf.call vs jQuery源代码中的array.indexOf

我正在浏览
jQuery的来源并碰到了这个:

return indexOf.call( array, elem );

Line 683

我想知道背后的逻辑是什么,为什么不这样做:

return array.indexOf(elem );

最佳答案 我的猜测是该代码的作者只是不想关心传递给.inArray()的目标.

例如,如果我们在传递的变量上调用.indexOf(),那么会调用$.inArray(42,’hello’)会明显崩溃. Number.prototype(以及其他类型)不知道这样的方法.

通过对传递的变量应用Array.prototype.indexOf方法,.indexOf()方法将照顾我们.

点赞