ფუნქციების გარე ცვლადებთან წვდომა JavaScript-ში
მოდით, განვიხილოთ შემდეგი კოდი:
let num = 1; // ცვლადის მნიშვნელობის მინიჭება
function func() {
console.log(num); // მისი კონსოლში გამოტანა
}
func(); // ფუნქციის გამოძახება
როგორც ადრე აღვნიშნე, ცვლადის მნიშვნელობა სულაც არ უნდა იყოს ფუნქციის განსაზღვრამდე, მთავარია, რომ იგი იყოს მის გამოძახებამდე:
function func() {
console.log(num);
}
let num = 1;
func();
სინამდვილეში ეს მთლად ასე არაა. ჩვენი ფუნქცია
თავისი გამოძახებიდანაც კი ადრე იცის ცვლადის მნიშვნელობა
num:
let num = 1;
function func() {
console.log(num); // ფუნქციამ უკვე იცის, რომ num = 1
}
აი, უფრო რთული მაგალითი:
let num = 1; // ფუნქცია ამ მომენტში იგებს, რომ num = 1
function func() {
console.log(num);
}
num = 2; // ფუნქცია ამ მომენტში იგებს, რომ num = 2
დავამატოთ ფუნქციის გამოძახებები:
let num = 1; // ფუნქცია ამ მომენტში იგებს, რომ num = 1
func(); // გამოიტანს 1
function func() {
console.log(num);
}
func(); // გამოიტანს 1
num = 2; // ფუნქცია ამ მომენტში იგებს, რომ num = 2
func(); // გამოიტანს 2
კიდევ ერთხელ: სინამდვილეში ფუნქცია იცის გარე ცვლადების მნიშვნელობებს, მაშინაც კი, როცა ის არ არის გამოძახებული.