1
在我的jQuery脚本中,当用户使用动画关闭菜单时,必须在关闭动画完成后调用函数。我想通过使用参数调用函数openStrip()来动态分配这个函数。我的代码如下所示:在javascript中为变量分配函数时识别变量
var FUNCTION_JUST_AFTER_MENU_CLOSE = function(){};
function openStrip(stripId){
FUNCTION_JUST_AFTER_MENU_CLOSE = function(){
createStrip(stripId);
});
}
如果我叫openStrip( “aStripId”),我希望FUNCTION_JUST_AFTER_MENU_CLOSE是:
// #1
function(){
createStrip("aStripId");
}
而我当前的代码给出:
//#2
function(){
createStrip(stripId);
}
即在将函数()分配给变量FUNCTION_JUST_AFTER_MENU_CLOSE时,传递给函数openStrip()的参数会丢失。
我该如何避免这种情况。
编辑:我发现我的代码实际上工作。问题在别处。我很困惑,因为当我看着Chrome的调试器时,它显示了函数定义(上面的#2)。但是当它实际上在代码中稍后执行该函数时,它确实评估了传递参数的值,并且执行#1。
感谢您的答案。我认为它是正确的,因为这可能是分配函数的更好方法。
通过在变量*中保留变量'stripId' *创建闭包,而不是通过重放在代码中每一次出现它。功能体没有改变。 – Bergi