使用闭包将保存/静态变量暴露到函数外部范围。
代码示例:
function counter() {
let count = 0;
function increment() {
count++;
}
function decrement() {
count--;
}
function getCount() {
return count;
}
return {
increment,
decrement,
getCount
};
}
const myCounter = counter();
console.log(myCounter.getCount()); // 0
myCounter.increment();
myCounter.increment();
console.log(myCounter.getCount()); // 2
在这个例子中,count
变量被保存在闭包中,而不是被暴露到函数外部。通过返回一个具有访问该变量的方法的对象,我们可以实现外部访问而不直接暴露变量。这提供了更好的封装和保护,使得变量不能被意外更改。