打扰一下初学者的问题,但是我很难解决这个问题。使用jQuery,我可以做这样的事情:
$.each(array, testF);
function testF(){
console.log(this.name);
}
使用$ .each,我可以将数组传递给函数testF,并访问数组每一行中包含的对象。但是当我尝试做类似的事情时:
array[0].testF()
我收到一条错误消息,指出该对象没有方法'testF'。我想知道是否有人可以解释这里发生了什么...为什么jQuery一种有效,而第二种无效。同样,请原谅问题。
最佳答案
$.each(array, testF)
为数组中的每个元素调用testF(i, elem)
,并将this
绑定(bind)到elem
。 array[0].testF()
尝试调用testF()
上存在的方法array[0]
$.each()
的等效功能是testF.call(array[0], 0, array[0])
,或者因为您不使用参数,所以可以简化testF.call(array[0])
有关MDN的文档,请参见
.call()
。