是否可以在 ES6 类中创建私有(private)属性?
这是一个例子。
如何防止访问 instance.property
?
class Something {
constructor(){
this.property = "test";
}
}
var instance = new Something();
console.log(instance.property); //=> "test"
最佳答案
更新:查看其他人的回答,这已经过时了。
简短的回答,不,没有对带有 ES6 类的私有(private)属性的原生支持。
但是您可以通过不将新属性附加到对象,而是将它们保留在类构造函数中来模仿这种行为,并使用 getter 和 setter 来访问隐藏的属性。请注意,getter 和 setter 在类的每个新实例上都会重新定义。
ES6
class Person {
constructor(name) {
var _name = name
this.setName = function(name) { _name = name; }
this.getName = function() { return _name; }
}
}
ES5
function Person(name) {
var _name = name
this.setName = function(name) { _name = name; }
this.getName = function() { return _name; }
}
关于javascript - JavaScript ES6 类中的私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156326/