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);