通常,JavaScript
开发者使用下划线作为私有变量的前缀。但是实际上,这些变量依然可以被访问和修改,并非真正的私有变量。这时,使用闭包可以定义真正的私有变量:
function Product() {
var name;
this.setName = function(value) {
name = value;
};
this.getName = function() {
return name;
};
}
var p = new Product();
p.setName("Fundebug");
console.log(p.name); // 输出undefined
console.log(p.getName()); // 输出Fundebug
代码中,对象 p 的的 name 属性为私有属性,使用 p.name 不能直接访问。
function makeEmployee(name){
return {
getName(){
return name;
}
}
}
const employee = makeEmployee("朱小明");
console.log(employee.getName());//朱小明