如何在JavaScript的公共方法中调用私有方法?
类私有方法的正确调用方式
你遇到的问题根源是JavaScript私有方法的调用语法错误——私有成员(包括方法)必须通过this.#方法名的形式调用:
- 直接写
myPrivateMethod()会去全局作用域查找函数,自然找不到对应定义 - 写
this.myPrivateMethod()是在访问实例的公共属性,但你的私有方法标识符是#myPrivateMethod,不带#的名字根本对应不上这个私有成员
要保持方法私有性的同时实现调用,只需要修改调用语句的写法即可,修正后的代码如下:
class myClass { myPublicMethod(e) { console.log(this); this.#myPrivateMethod(); // 正确调用私有方法 } #myPrivateMethod() { console.log('in myPrivateMethod'); } }
另外需要注意,类的私有成员仅能在类内部访问,外部无法通过任何方式调用,这也确保了它的私有性不受破坏。
内容的提问来源于stack exchange,提问作者Legion
相关产品推荐
相关产品推荐

