在 JavaScript 中,閉包是一種常用的技術,可以實現數據封裝。通過閉包,我們可以創建私有變量,只能通過特定的公開方法進行訪問和修改。下面是一個簡單的例子來說明如何使用閉包實現數據封裝:
function createCounter() {
// 私有變量,外部無法直接訪問
let count = 0;
// 返回一個對象,包含兩個公共方法,用于訪問和修改 count 變量
return {
increment: function () {
count++;
},
getCount: function () {
return count;
},
};
}
// 創建一個計數器實例
const counter = createCounter();
// 使用 increment() 方法修改 count 的值
counter.increment();
console.log(counter.getCount()); // 輸出 1
// 無法直接訪問和修改 count 變量
console.log(count); // 報錯:ReferenceError: count is not defined
在這個例子中,createCounter
函數內部定義了一個私有變量 count
,外部無法直接訪問。然后,我們通過返回一個包含 increment
和 getCount
方法的對象,使得外部可以通過這兩個方法來訪問和修改 count
變量。這樣就實現了數據封裝。