【发布时间】:2019-12-08 16:42:05
【问题描述】:
我刚才一直在学习 javascript,目前正处于关闭状态。据说闭包模拟私有变量。但是变量不是只能在它们自己的范围内访问,默认情况下它们是私有的吗?给定这个例子
function manageSalary () {
let salary = 0;
function updateSalary(amount) {
salary += amount;
}
return {
raise: function(amount) {
updateSalary(amount);
},
deduct: function(amount) {
updateSalary(amount);
},
current: function () {return salary}
}
};
在这个例子中,闭包究竟是如何将薪水变量设为私有的?由于您无法在此 manageSalary 之外访问它,因此薪水不是已经私有了吗?我从这个例子中理解的是闭包模拟私有方法。
【问题讨论】:
标签: javascript closures