我目前正在查看本页第二个问题的第二个解决方案,
https://www.sitepoint.com/5-javascript-interview-exercises/
我被困住了为什么你需要关闭。
function handlerWrapper(i) {
console.log('You clicked element #' + i);
}
为什么我需要返回功能。当我尝试
console.log('You clicked element #' + i);
它不起作用。究竟是什么包括
{{1}}
在返回功能内吗?为什么它可以工作?为什么我需要在返回函数中执行它?
提前谢谢你
答案 0 :(得分:1)
嗯,这很简单,让我们这样说:
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
我希望你有这个主意......