essayer d'accéder à une fonction anonyme 'pleut' en passant un argument
3 Réponses :
Vous pouvez utiliser la fonction Currying pour accéder à la fonction anonyme à l'intérieur p> Météo () Code>. Fondamentalement, cela signifie renvoyer la référence de fonction anonyme de la fonction extérieure et l'exécuter avec le paramètre attendu.
function weather(){
function sunny(){
return "Sun is shining!";
}
console.log(sunny());
var raining = function(num){
var rainThisWeek = " ";
for (var d = 0; d < num; d++){
rainThisWeek += "pelting";
}
return rainThisWeek;
}
return raining; //you can curry the anonymous function
}
//-----------------v This will return the anonymous function reference
console.log(weather()(4));
//--------------------^ This will execute the returned anonymous function with the parameter 4
Vous pouvez utiliser des rappels pour ce type d'exigence.
La façon dont vous avez défini la méthode de pluie, vous ne pouvez pas y accéder en dehors de la fonction. Vous devez soit renvoyer la méthode
p>
function weather(){ function sunny(){ return "Sun is shining!"; } console.log(sunny()); this.raining = function(num){ var rainThisWeek = " "; for (var d = 0; d < num; d++){ rainThisWeek += "pelting"; } return rainThisWeek; } } const weather1 = new weather(); console.log(weather1.raining(3));
De la même manière que vous appelez n'importe quelle fonction,
pleut (3) code> ou quelque chose de similaire?
La fonction
pleut code> n'est pas retournée par la fonction, ni assignée à une variable globale ou fermée, il obtient donc des ordures recueillies (supprimées) immédiatement après
Météo () Code> Retours