Väliste ja sisemiste funktsioonide parameetrid JavaScriptis
Teeme nii, et nii välimine kui ka sisemine funktsioon võtaksid parameetreid vastu:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Edastame välimise funktsiooni parameetri sisemise funktsiooni väljakutsele:
function test(num) {
function func(localNum) {
console.log(localNum); // väljastab 1
}
func(num); //!! edastame parameetri
}
test(1); // edastame parameetrina arvu
Seega on sisemises funktsioonis
kättesaadav muutuja num kui väline
muutuja vanemfunktsioonist ja muutuja
localNum, mis on sisemise funktsiooni
lokaalne muutuja.
Mõlemal neist muutujatest on samad väärtused:
function test(num) {
function func(localNum) {
console.log(num); // väljastab 1
console.log(localNum); // väljastab 1
}
func(num);
}
test(1);
Nende erinevus on järgmine: kui
sisemises funktsioonis muudetakse muutujat
num - siis see muutub ka välimises funktsioonis:
function test(num) {
function func(localNum) {
num = 2; // muudame muutujat num
}
func(num); // edastame parameetri
console.log(num); // väljastab 2
}
test(1); // edastame parameetrina arvu
Muutuja localNum on aga lokaalne.
Selle muutmine ei too kaasa mingisuguseid
muutusi välimises funktsioonis. Ja see
muutuja localNum ei ole nähtav
väljaspool sisemist funktsiooni:
function test(num) {
function func(localNum) {
localNum = 2; // muudame muutujat num
}
func(num); // edastame parameetri
}
test(1); // edastame parameetrina arvu
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Määrake, koodi käivitamata, mis väljastatakse konsooli:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);