在 ES6 中,可以使用閉包來模擬私有變量的實(shí)現(xiàn)。具體地說,可以使用一個立即執(zhí)行函數(shù)表達(dá)式 IIFE 來創(chuàng)建一個函數(shù)作用域,在函數(shù)作用域內(nèi)定義私有變量,然后通過返回一個對象,使得外部無法直接訪問私有變量。

例如,以下是一個使用閉包實(shí)現(xiàn)私有變量的示例:

const Counter = (() => {
    let count = 0; // 私有變量

    return {
        increment() {
            count++;
            console.log(`count: ${count}`);
        },
        reset() {
            count = 0;
            console.log("count reset");
        },
    };
})();

Counter.increment(); // 輸出 "count: 1"
Counter.increment(); // 輸出 "count: 2"
Counter.reset(); // 輸出 "count reset"

在上述示例中,count 變量是私有的,外部無法直接訪問它,但是可以通過調(diào)用返回的對象中的方法來操作它。這里使用了箭頭函數(shù)和對象字面量來定義返回的對象,使得代碼更加簡潔。

閉包javascript