闭包问题-调用从封闭函数返回的函数的JavaScript语句是什么?

闭包问题-调用从封闭函数返回的函数的JavaScript语句是什么?,javascript,Javascript,这是我第一次使用闭包,如下所示,但我想尝试从另一个代码位置调用myFunction()。调用从标记为handleMouseDown()的封闭函数返回的匿名函数表达式需要什么JS语句?当前,未对绑定到mouseDown的select下拉列表上的mouseDown事件调用handleMouseDown() function handleMouseDown(whichDropDown) { if (typeof mouseDownCount === 'undefined')

这是我第一次使用闭包,如下所示,但我想尝试从另一个代码位置调用
myFunction()
。调用从标记为
handleMouseDown()
的封闭函数返回的匿名函数表达式需要什么JS语句?当前,未对绑定到mouseDown的select下拉列表上的mouseDown事件调用handleMouseDown()

function handleMouseDown(whichDropDown) {
            if (typeof mouseDownCount === 'undefined')
                mouseDownCount = 0;
            return function(whichDropDown, mouseDownCount) {
                switch (mouseDownCount) {
                    case 0:
                        mouseDownCount++;
                        break;
                    case 1:
                        mouseDownCount++;
                        myFunction(whichDropDown);
                        break;
                }
                return mouseDownCount;
            }
        }

给定您的代码,调用
myFunction
所需的唯一一件事似乎是将
1
作为参数传递给从
handleMouseDown
返回的回调:

const myFunction=arg=>console.log('myFunction用',arg调用);
函数handleMouseDown(whichDropDown){
if(mouseDownCount的类型==“未定义”)
mouseDownCount=0;
返回函数(whichDropDown、mouseDownCount){
开关(鼠标向下计数){
案例0:
mouseDownCount++;
打破
案例1:
mouseDownCount++;
myFunction(whichDropDown);
打破
}
返回mouseDownCount;
}
}
const callback=handleMouseDown('someDropdown');

回调('foo',1)
回调(someArg,1)
应该有效。@CertainPerformance,我可以要求一个正式的答案,以澄清这是否是唯一的方法吗?我很欣赏这种方法的暗示,谢谢。你能解释一下回调实际上在做什么,在我闭包的情况下它是如何工作的吗,因为我知道在进程完成时调用的回调?回调就是这个返回的函数:
return function(whichDropDown,mouseDownCount){
调用回调只调用该函数。传递的第一个参数将是
whichDropDown
。传递的第二个参数将是
mouseDownCount
。由于
开关取决于
mouseDownCount
,因此只需传递正确的第二个参数即可调用
myFunction
ve提供了一种在第二次鼠标单击时调用myFunction的方法,即当用户单击下拉选项时,如果选项值改变,则调用myFunction。