在 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ù)和對象字面量來定義返回的對象,使得代碼更加簡潔。