在以下示例中,“ myFunction”似乎失去了作用域。

$().grep(myArray, myFunction)


通过这个,我的意思是说它不再有权访问定义它的作用域的“ this”,而“ this”成为窗口对象。任何人都可以解释这是为什么,以及是否有一种方便的方法来保留myFunction的范围?这个javascript封闭的东西半途而废,但是我想让它变得更容易。

最佳答案

$.grep(myArray, function(){
    return myFunction.apply(realScope, arguments);
});


将“ realScope”替换为预期的范围,即“ this”的值。

关于javascript - jQuery-传递给$()。grep的函数范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/567131/

10-12 14:10
查看更多