繁体   English   中英

Javascript闭合范围返回函数

[英]Javascript Closure scope return function

我目前正在此页面上查看第二个问题的第二个解决方案,

https://www.sitepoint.com/5-javascript-interview-exercises/

我陷入困境,为什么您需要关闭。

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);

内返回函数呢? 它为什么起作用,为什么我需要在return函数中执行它?

提前谢谢你

好吧,很简单,可以这样说:

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

我希望你有主意...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM