Класс приватный метод в новейшем chrome - PullRequest
4 голосов
/ 05 февраля 2020

У меня самая новая версия Google chrome в настоящее время версия 80.0.3987.87. Я скопировал пример из JS документов , что

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: Неожиданный токен '('

из второй строки, где я объявляю закрытый метод. Почему ошибка, что что-то не так с моей средой? Я не думаю, что документы MDN неверны ..

1 Ответ

2 голосов
/ 05 февраля 2020

Насколько я могу судить, предложение все еще находится на стадии 3
, вы можете проверить здесь История развития и статус
для более подробной информации о процессе
MDN только говорит, что chrome поддерживает закрытый класс поля не методы .
По этой причине вы получаете сообщение об ошибке.
Однако, как уже упоминалось, 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...