برنامه نویسی

بسته های جاوا اسکریپت – جامعه dev

بسته شدن یک مفهوم قدرتمند و اساسی در جاوا اسکریپت است. این به عملکردی اشاره دارد که حتی پس از پایان اجرای عملکرد بیرونی ، از دامنه بیرونی (محصور) آن به متغیرها دسترسی دارد. بسته شدن بخش اصلی برنامه نویسی و کاربردی جاوا اسکریپت است.

چگونه بسته می شود

هنگامی که یک تابع در داخل یک عملکرد دیگر تعریف می شود ، عملکرد داخلی به متغیرها و پارامترهای عملکرد بیرونی دسترسی دارد. حتی پس از اتمام عملکرد بیرونی ، عملکرد داخلی دسترسی به آن متغیرها را حفظ می کند. این رفتار بسته شدن نامیده می شود.

نمونه ای از بسته شدن

function outerFunction() {
    let outerVariable = 'I am from the outer scope';

    function innerFunction() {
        console.log(outerVariable); // innerFunction can access outerVariable
    }

    return innerFunction;
}

const closureExample = outerFunction();
closureExample(); // Output: "I am from the outer scope"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این مثال:

innerFunctionبسته شدن است زیرا دسترسی به آن را حفظ می کند outerVariable حتی بعد از outerFunction اجرای آن را به پایان رسانده است.

کاربردهای عملی از تعطیلی

  1. حریم خصوصی داده ها: از بسته شدن می توان برای ایجاد متغیرهای خصوصی استفاده کرد که فقط در دسترس توابع خاص هستند.
function createCounter() {
    let count = 0;
    return function() {
        count++;
        return count;
    };
}

const counter = createCounter();
console.log(counter()); // Output: 1
console.log(counter()); // Output: 2
console.log(counter()); // Output: 3
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. توابع تماس تلفنی: بسته شدن ها به طور گسترده ای در برنامه نویسی ناهمزمان مانند دستگیرندگان رویداد یا تماس های AJAX استفاده می شود.
setTimeout(function() {
    console.log('This is a callback using closure');
}, 1000);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. کاری: از بسته شدن در عملکرد عملکرد استفاده می شود ، جایی که یک تابع عملکرد دیگری را با آرگومان های جزئی برمی گرداند.
function multiply(a) {
    return function(b) {
        return a * b;
    };
}

const multiplyByTwo = multiply(2);
console.log(multiplyByTwo(5)); // Output: 10
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مزایای بسته شدن

  • کنترل دامنه: بسته شدن به کنترل دامنه متغیرها کمک می کند و از آلاینده آنها در دامنه جهانی جلوگیری می کند.

  • کارایی حافظه: تعطیلی امکان استفاده کارآمد از حافظه را با حفظ دسترسی به متغیرهای خاص بدون ایجاد متغیرهای جهانی فراهم می کند.

احتیاط های بسته شدن

  • نشت حافظه: بسته شدن در صورت عدم استفاده دقیق می تواند باعث نشت حافظه شود زیرا آنها به متغیرهای بیرونی مراجعه می کنند ، که می تواند از جمع آوری زباله جلوگیری کند.

  • عملکرد بالای سر: استفاده بیش از حد از بسته شدن می تواند به دلیل افزایش مصرف حافظه منجر به مشکلات عملکرد شود.

مثال در دنیای واقعی: متغیرهای خصوصی

function createBankAccount(initialBalance) {
    let balance = initialBalance;

    return {
        deposit: function(amount) {
            balance += amount;
            return `Deposited ${amount}. New balance: ${balance}`;
        },
        withdraw: function(amount) {
            if (amount > balance) {
                return 'Insufficient funds';
            }
            balance -= amount;
            return `Withdrew ${amount}. New balance: ${balance}`;
        },
        getBalance: function() {
            return `Current balance: ${balance}`;
        }
    };
}

const account = createBankAccount(1000);
console.log(account.deposit(500)); // Deposited 500. New balance: 1500
console.log(account.withdraw(200)); // Withdrew 200. New balance: 1300
console.log(account.getBalance()); // Current balance: 1300
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این مثال:

در balance متغیر خصوصی است و فقط از طریق روشهای ارائه شده توسط بسته شدن قابل دسترسی یا اصلاح است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا