Параметри на външни и вътрешни функции в 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);