Параметры знешняй і ўнутранай функцый у JavaScript
Давайце зробім так, каб і знешняя функцыя і ўнутраная прымалі параметры:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Перададзім параметр знешняй функцыі ў выклік унутранай функцыі:
function test(num) {
function func(localNum) {
console.log(localNum); // выведзе 1
}
func(num); //!! перадаем параметр
}
test(1); // перадаем параметрам лік
Атрымліваецца, што ў ўнутранай функцыі будзе
даступная зменная num як знешняя
зменная з бацькоўскай функцыі і зменная
localNum, якая з'яўляецца лакальнай зменнай
унутранай функцыі.
Абедзве гэтыя зменныя будуць мець аднолькавыя значэнні:
function test(num) {
function func(localNum) {
console.log(num); // выведзе 1
console.log(localNum); // выведзе 1
}
func(num);
}
test(1);
Розніца паміж імі будзе ў наступным: калі
ў ўнутранай функцыі змяніць зменную
num - яна зменіцца і ў знешняй функцыі:
function test(num) {
function func(localNum) {
num = 2; // мяняем зменную num
}
func(num); // перадаем параметр
console.log(num); // выведзе 2
}
test(1); // перадаем параметрам лік
А зменная localNum будзе лакальнай.
Яе змены не будуць прыводзіць ні да якіх
змен у знешняй функцыі. Ды і сама
зменная localNum не будзе бачная
звонку ўнутранай функцыі:
function test(num) {
function func(localNum) {
localNum = 2; // мяняем зменную num
}
func(num); // перадаем параметр
}
test(1); // перадаем параметрам лік
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Вызначыце, не запускаючы код, што выведзецца ў кансоль:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);