Išorinių ir vidinių funkcijų parametrai JavaScript
Padarykime taip, kad ir išorinė funkcija, ir vidinė priimtų parametrus:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum);
}
}
Perduokime išorinės funkcijos parametrą į vidinės funkcijos iškvietimą:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum); // išves 1
}
func(num); //!! perduodame parametrą
}
test(1); // perduodame parametrą skaičių
Pasirodo, kad vidinėje funkcijoje bus
prieinamas kintamasis num kaip išorinis
kintamasis iš tėvinės funkcijos ir kintamasis
localNum, kuris yra vidinis kintamasis
vidinės funkcijos.
Abu šie kintamieji turės vienodas reikšmes:
javascriptfunction test(num) {
function func(localNum) {
console.log(num); // išves 1
console.log(localNum); // išves 1
}
func(num);
}
test(1);
Skirtumas tarp jų bus toks: jei
vidinėje funkcijoje pakeisite kintamąjį
num - jis pasikeis ir išorinėje funkcijoje:
javascriptfunction test(num) {
function func(localNum) {
num = 2; // keičiame kintamąjį num
}
func(num); // perduodame parametrą
console.log(num); // išves 2
}
test(1); // perduodame parametrą skaičių
O kintamasis localNum bus lokalus.
Jo pakeitimai nesukels jokių
pakeitimų išorinėje funkcijoje. Be to, pats
kintamasis localNum nebus matomas
išorėje nuo vidinės funkcijos:
javascriptfunction test(num) {
function func(localNum) {
localNum = 2; // keičiame kintamąjį num
}
func(num); // perduodame parametrą
}
test(1); // perduodame parametrą skaičių
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Nustatykite, nepaleisdami kodo, kas bus išvesta į konsolę:
javascriptfunction test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);