javascript - 最新 chrome 中的类私有(private)方法

标签 javascript class oop private

我有最新的谷歌浏览器当前版本 80.0.3987.87。我复制了example from JS docs这是

class ClassWithPrivateMethod {
  #privateMethod() {
    return 'hello world'
  }

  getPrivateMessage() {
      return #privateMethod()
  }
}

const instance = new ClassWithPrivateMethod()
console.log(instance.getPrivateMessage())
// expected output: "hello worl​d"


并将其粘贴到控制台。我应该得到 Hello World 但我有错误:

Uncaught SyntaxError: Unexpected token '('



从我声明私有(private)方法的第二行开始。为什么会出错,我的环境有什么问题?我不认为 MDN 文档不正确..

最佳答案

更新 : 现在 chrome 支持了。
如果您添加 this,相同的示例将适用于 chrome devtools getPrivateMessage 方法: getPrivateMessage() { return this.#privateMethod(); }据我所知,该提案仍只是第 3 阶段
你可以在这里查看Development history & status
有关该过程的更多详细信息
MDN 只说 chrome 支持私有(private)类 字段
不是 方法 .
这就是您收到错误的原因。
然而,正如提到的 private fields受chrome支持,您可以使用
类似的东西:

class ClassWithPrivateMethod {
  #privateMethod

  constructor(){
      this.#privateMethod = function(){
          return 'hello world';
      };
  }

  getPrivateMessage() {
      return this.#privateMethod();
  }
}
const instance = new ClassWithPrivateMethod();
console.log(instance.getPrivateMessage());

关于javascript - 最新 chrome 中的类私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60078943/

相关文章:

javascript - 水平居中图像大于屏幕并在浏览器调整大小时缩小图像

Perl:测试类是否存在

java - SUPER 类应该从它的 SUBCLASS 中获取函数和属性。在Java中有可能吗?

javascript - 将 Jquery 添加到 Vue-Cli 3

javascript - 刷新后保留页面中的数据

java - 使用 "add"方法将对象从单独的类添加到 ArrayList

class - TYPO3 v10 持久化映射

python - 如果要在 python 中扩展一个类,如何导入另一个类并使用它?

c# - 定义对象列表。通过对象中的特定字段获取

javascript - 如何加载脚本内容而不执行?