0
respostas

Closures

Estou em dúvida com relação a closures. Segue meu código:

function makePassword(password){           
    return function guess(passwordGuess){   
        return (passwordGuess === password) 
    }
};

var tryGuess = makePassword("robson");
console.log(tryGuess("pedro"));                                                      //É isso que ocorre quando passo o argumento "pedro"?

console.log(tryGuess("pedro"));                                   //                makePassword(robson){
                                                                                          //         (pedro){
                                                                                         //             return (pedro === robson)     
                                                                                         //          }

No caso, no momento em que faço uso da var tryGuess que contém referência a function makePassword com argumento robson e o seu ambiente closure, passo um argumento, que nesse caso, é "pedro". Esse argumento que passo, vai diretamente para a primeira function do ambiente closure? Não consigo entender o porquê do argumento "pedro" ser passado diretamente para dentro da function como argumento de guess.