【发布时间】:2009-02-19 21:00:13
【问题描述】:
以下示例中的“myFunction”似乎失去了作用域。
$().grep(myArray, myFunction)
这里,我的意思是它不再可以访问它定义的范围的“this”,并且“this”变成了窗口对象。谁能解释为什么会这样以及是否有一种方便的方法来保留 myFunction 的范围?这个 javascript 闭包的东西让我半途而废,但我正在努力解决它。
【问题讨论】:
标签: javascript jquery
以下示例中的“myFunction”似乎失去了作用域。
$().grep(myArray, myFunction)
这里,我的意思是它不再可以访问它定义的范围的“this”,并且“this”变成了窗口对象。谁能解释为什么会这样以及是否有一种方便的方法来保留 myFunction 的范围?这个 javascript 闭包的东西让我半途而废,但我正在努力解决它。
【问题讨论】:
标签: javascript jquery
$.grep(myArray, function(){
return myFunction.apply(realScope, arguments);
});
将“realScope”替换为预期的范围 - 您想要作为 'this' 的值。
【讨论】: