Paramètres des fonctions externes et internes en JavaScript
Faisons en sorte que la fonction externe et la fonction interne acceptent toutes deux des paramètres :
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Passons le paramètre de la fonction externe à l'appel de la fonction interne :
function test(num) {
function func(localNum) {
console.log(localNum); // affichera 1
}
func(num); //!! nous passons le paramètre
}
test(1); // passons un nombre en paramètre
Il en résulte que dans la fonction interne, la variable
num sera accessible en tant que variable externe
de la fonction parent et la variable
localNum, qui est une variable locale
de la fonction interne.
Ces deux variables auront les mêmes valeurs :
function test(num) {
function func(localNum) {
console.log(num); // affichera 1
console.log(localNum); // affichera 1
}
func(num);
}
test(1);
La différence entre elles sera la suivante : si
dans la fonction interne on modifie la variable
num - elle changera aussi dans la fonction externe :
function test(num) {
function func(localNum) {
num = 2; // modifions la variable num
}
func(num); // passons le paramètre
console.log(num); // affichera 2
}
test(1); // passons un nombre en paramètre
Et la variable localNum sera locale.
Ses modifications n'entraîneront aucun
changement dans la fonction externe. Et la variable
localNum elle-même ne sera pas visible
en dehors de la fonction interne :
function test(num) {
function func(localNum) {
localNum = 2; // modifions la variable num
}
func(num); // passons le paramètre
}
test(1); // passons un nombre en paramètre
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Déterminez, sans exécuter le code, ce qui sera affiché dans la console :
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);