Как из приватного метода в JavaScript класса вызвать публичный метод?

Как вызвать публичный метод из приватного метода класса без обращения к глобальной переменной? Пример:

class MyClass {
  pub() { console.log('Привет'); }
  _priv() { this.pub(); }
  run() { this._priv(); }
}
new MyClass().run();

Мне кажется, что вызов публичного метода из приватного не представляет никаких сложностей – все коректно работает через this. В моем опыте, если метод объявлен внутри класса, то из приватного метода можно смело к нему обратиться, как показано в примере. Иногда я сталкивался с проблемами, когда this терял контекст, но в таком случае помогает корректное связывание или использование arrow-функций. Надеюсь, мой опыт будет полезен, удачи!

Я считаю, что вызов через this вообще норм работает. Но иногда контекст может теряться, если метод передается как callback. Было бы интересно узнать, сталкивались ли вы с похожими особенностями в других проектах?

Обращайтесь через this - все работает, если контекст не теряется. Когда метод определяется внутри класса, вызов публичного метода из приватного ссылается на тот же объект, как в примере. Единственное, что может создать проблемы, это передача методов в качестве callback-функций, когда контекст меняется. В таких случаях я всегда использую bind или стрелочные функции, чтобы привязать нужный контекст.

В работе мне неоднократно пришлось использовать публичные методы из приватных, и могу сказать – это работает, если следить за тем, чтобы контекст не терялся. Я иногда наталкивался на ошибку, когда метод передавался как callback и this оказывался не тем, что ожидалось. В таких случаях помогает правильное связывание методов через bind или правильное объявление функции. Так что, если структура класса четкая, проблем появляться не должно.