我的理解是私有方法不是原型链的一部分,因此不会被子类继承。但是,当通过类的公共方法调用这些方法时,我对类的实例如何访问私有方法感到困惑。
class MyClass {
#privateMethod() {
return 'I am a private method';
}
publicMethod() {
return this.#privateMethod(); // Access private method from within the class
}
}
const instance = new MyClass();
console.log(instance.publicMethod()); // Logs: I am a private method
当调用
instance.publicMethod()
时,this
内的publicMethod
指的是instance
。由于私有方法不是实例本身或原型链的一部分,那么 this.#privateMethod()
是如何工作的呢?即使实例不直接包含私有方法,如何访问私有方法?