我正在浏览
jQuery的来源并碰到了这个:
return indexOf.call( array, elem );
– Line 683
我想知道背后的逻辑是什么,为什么不这样做:
return array.indexOf(elem );
最佳答案 我的猜测是该代码的作者只是不想关心传递给.inArray()的目标.
例如,如果我们在传递的变量上调用.indexOf(),那么会调用$.inArray(42,’hello’)会明显崩溃. Number.prototype(以及其他类型)不知道这样的方法.
通过对传递的变量应用Array.prototype.indexOf方法,.indexOf()方法将照顾我们.