我有点遗失ES6隐私类。我有这个类:什么是“私人财产”在ES6课堂上的意思?
class Whatever {
constructor(value) {
this._value = Number(value);
}
total() {
return this._value * 2;
}
}
let instance = new Whatever('1000');
console.log(instance.total()); // 2000
console.log(instance._value ); // 1000
我想学符号()是如何工作的,以保持私人数据(see link),阅读我试图做一下简单的例子,但似乎不是文档后有什么区别:
const _value = Symbol('value');
class Whatever {
constructor(value) {
this[_value] = Number(value);
}
total() {
return this[_value] * 2;
}
}
let instance = new Whatever('1000');
console.log(instance.total()); // 2000
console.log(instance[_value] ); // 1000
有人能解释我在一个全面的方式,这是什么意思隐私在这种情况下,为什么我的私有化数据(使数据从类的外部unaccesible)的想法是错误的?我没有太多的OOP经验。
谢谢。
它也是一样,正如链接文章所提到的:它们(两者)“*对外界有些隐藏,但不完全*”。 – Bergi