const sayHello=Symbol();
class Student{
constructor(name,stuId){
this.name=name;
this.stuId=stuId;
}
doSomething(){
this[sayHello]();
}
[sayHello](){
console.log("Hello!");
}
}
如上sayHello可以作为一个私有方法。但是尝试了一下sayHello在实例化的那个页面也可以访问。虽然是作为Symbol,但是给人感觉也比较奇怪,因为其他地方也可能会用到“sayHello”,从而导致冲突。所以我觉得下面这种加下划线命名的方式更好,虽然可以访问,但一看就明白。
class Student{
constructor(name,stuId){
this.name=name;
this.stuId=stuId;
}
doSomething(){
this._sayHello();
}
_sayHello(){
console.log("Hello!");
}
}