Javascript闭包作用域返回函数

Javascript闭包作用域返回函数,javascript,web,scope,closures,lexical-scope,Javascript,Web,Scope,Closures,Lexical Scope,我正在看本页第二个问题的第二个解决方案 我不明白你为什么需要结束 function handlerWrapper(i) { return function() { console.log('You clicked element #' + i); } } 为什么我需要返回函数。当我尝试 function handlerWrapper(i) { console.log('You clicked element #' + i); } 它不起作用。包括 co

我正在看本页第二个问题的第二个解决方案

我不明白你为什么需要结束

function handlerWrapper(i) {
   return function() {
      console.log('You clicked element #' + i);
   }
}
为什么我需要返回函数。当我尝试

function handlerWrapper(i) {

     console.log('You clicked element #' + i);

}
它不起作用。包括

console.log('You clicked element #' + i);
在返回函数内做什么?为什么它可以工作,为什么我需要在返回函数中执行它


提前谢谢你

很简单,让我们这样说:

function printToConsole(callback) {
    workOrSomething();
    callback();
}

function handlerWrapper(i) {
     console.log('You clicked element #' + i);
}

//This doesn't know what i you want.
printToConsole(handleWrapper); -> You clicked element #undefined

function handlerWrapper(i) {
    return function() {
        console.log('You clicked element #' + i);
    }
}

//This does
printToConsole(handleWrapper(3)); -> You clicked element #3
我希望你有这个想法