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