如何使用 ES6 类创建私有(private)变量和方法,这些变量和方法应该由同一类的公共(public)方法访问。
class MyClass {
constructor() {
this.publicVar = "I am public";
//some private Variable e.g privteVar1 = "I am Private1"; privateVar2 = "I am Private2";
this.publicMethod = () => {
//it should have accesses to private variables and methods
console.log(privateVar1, privateVar2)
};
//similarly need to create some privateMethod
}
render() {
//it also should have access to the private variables
}
}
最佳答案
正如@yibuyisheng 所注意到的,您可以使用符号来创建对属性的不可访问引用。您也可以创建私有(private)方法。
var privateMethod = Symbol('private');
class SomeClass {
constructor() {
}
[privateMethod]() {
// some private actions
}
render() {
// call private method
this[privateMethod]()
}
}
符号创建一个唯一的引用,它可以用作属性名称。并且这个属性或方法只能通过使用它来调用。这是可能的,因为 ES6 正在引入 computed properties syntax并且您可以使用变量进行动态属性定义。
如果您不向其他人公开此符号,则只有您可以调用它。
关于javascript - ES6如何在类中创建私有(private)变量和方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551023/