如何在JavaScript6类中使属性私有?二传手和接球手的目的?
请看以下代码:如何在JavaScript6类中使属性私有?二传手和接球手的目的?,javascript,class,ecmascript-6,private,getter-setter,Javascript,Class,Ecmascript 6,Private,Getter Setter,请看以下代码: class Animal() { constructor(type, name) { this._type = type; this._name = name; } get type() { return this._type; } get name() { return this._name; } } 如果我要跑: var Dog = new Animal("Dog", "Rover"); console.log(
class Animal() {
constructor(type, name) {
this._type = type;
this._name = name;
}
get type() {
return this._type;
}
get name() {
return this._name;
}
}
如果我要跑:
var Dog = new Animal("Dog", "Rover");
console.log(Dog._name);
控制台将返回我的狗的名字,而不需要使用我上面写的`get name(){}。如果可以直接访问对象属性,Javascript 6中的getter和setter有什么意义?为什么在私有财产私有化毫无作用的情况下,下划线却成了私有财产的惯例?如何使用当前的ecmascript-6标准使我的属性在Javascript类中成为私有属性?getter/setter的要点是:如果内部表示形式发生更改,则无需修改类接口。例如,如果您决定从现在开始从其他属性计算
类型
,您可以这样做。setter通常需要进行一些计算,例如,在接受该值之前验证该值是否有效。有关私有财产及其利弊的完整讨论,请参阅。请仅在每篇文章中提出一个问题。我希望复制件能回答所有问题,如果不能,请提出更具体的问题。