> Как сделать приватный метод в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: GoInvest

Стек: JavaScript

> Пример ответа

В JavaScript нет нативной поддержки приватных методов в классическом понимании (как в Java или C++), но есть несколько способов их эмулировать.

1. Использование соглашения об именовании (нижнее подчеркивание)
Это не техническая защита, а договоренность среди разработчиков:

JAVASCRIPT
class MyClass {
_privateMethod() {
console.log('Это приватный метод (по соглашению)');
}
}

2. Приватные поля и методы через # (ES2022+)
Современный стандарт, обеспечивающий настоящую инкапсуляцию:

JAVASCRIPT
class MyClass {
#privateMethod() {
console.log('Настоящий приватный метод');
}
publicMethod() {
this.#privateMethod(); // Доступен только внутри класса
}
}
// this.#privateMethod() // Ошибка: приватное поле не определено

3. Замыкание в конструкторе
Классический подход для ES5 и ниже:

JAVASCRIPT
function MyClass() {
function privateMethod() {
console.log('Приватный метод через замыкание');
}
this.publicMethod = function() {
privateMethod();
};
}

4. Символы (Symbol)
Позволяют скрыть метод, но не гарантируют полную приватность:

JAVASCRIPT
const _privateMethod = Symbol('privateMethod');
class MyClass {
[_privateMethod]() {
console.log('Приватный метод через Symbol');
}
}

Рекомендация: Для современного кода используйте синтаксис с # - он поддерживается во всех актуальных браузерах и Node.js 14+.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью