【发布时间】:2015-06-21 01:43:00
【问题描述】:
我是否可以通过这种方式正确使用私有变量的模拟?
var C = function(a) {
var _private = a + 1;
// more code...
Object.defineProperties(this, {
'privateProp': {
get: function() {
return _private;
},
set: function(b) {
_private = b + 2;
}
}
});
}
因此,我可以使用 getter/setter 管理该私有变量。它的值可以通过自定义方法获取/设置。
让我们说这个例子
var c = new C(5);
console.log(c.privateProp); // 6
c.privateProp = 2;
console.log(c.privateProp); // 4
【问题讨论】:
-
您的问题到底是什么?你不能模拟一下吗?
-
privateProp是一个 public 属性,因为您可以在函数之外对其进行修改。_private是一个 私有 变量。也可以使用 ES6 符号来完成,但我不确定你到底要什么 -
我想我尝试找到最佳实践
标签: javascript private encapsulation setter getter