在 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
变量。这样就实现了数据封装。