[英]assigning function to variables and assigning variables to functions(?) in Javascript
[英]Recognising variables while assigning a function to a variable in javascript
在我的jQuery脚本中,当用户关闭带有动画的菜单时,关闭动画结束后,我必须调用一个函数。 我想通过使用参数调用函数openStrip()来动态分配此函数。 我的代码如下:
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()分配给变量FUNCTION_JUST_AFTER_MENU_CLOSE时,传递给函数openStrip()的参数会丢失。
我如何避免这种情况。
编辑:我发现我的代码实际上正在工作。 问题出在其他地方。 我很困惑,因为当我查看Chrome的调试器时,它向我显示了函数定义(上面的#2)。 但是当它实际上在代码的后面执行该函数时,它确实评估了所传递参数的值,并最终执行了#1。
谢谢你的回答。 我将其标记为正确,因为这可能是分配功能的更好方法。
最好的方法是像这样从openStrip
返回函数
function openStrip(stripId) {
return function() {
createStrip(stripId);
};
}
例如,
function openStrip(stripId) {
return function() {
console.log(stripId);
};
}
openStrip("aStripId")();
# aStripId
openStrip("bStripId")();
# bStripId
您甚至可以将返回的功能对象分配给不同的变量,并在以后使用它们
var aStrip = openStrip("aStripId");
aStrip();
# aStripId
aStrip();
# aStripId
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.