2017-12-21 6 views
0

ich zur Zeit an der zweiten Lösung der zweiten Frage auf dieser Seite suchen,Javascript Closure Umfang Rückkehrfunktion

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

Ich bin fest, warum Sie einen Verschluss benötigen.

Warum brauche ich die Rückkehrfunktion. Wenn ich versuche

function handlerWrapper(i) { 

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

} 

Es funktioniert nicht. Was genau macht das einschließlich der

innerhalb der Rücksprungfunktion? Warum funktioniert es und warum muss ich es innerhalb der Rückgabefunktion machen?

Vielen Dank im voraus zu

Antwort

0

Nun, es einfach ist, lässt dies sagen:

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 

Ich hoffe, Sie auf die Idee gekommen ...