Назад к вопросам
Junior — Middle
85
Каким образом реализуется сокрытие данных внутри класса и зачем это важно?
Ответ от нейросети
sobes.tech AI
Сокрытие данных внутри класса в Node.js достигается с помощью областей видимости и механизмов инкапсуляции. В JavaScript (и Node.js) можно использовать:
- Локальные переменные внутри функции-конструктора или модуля, которые недоступны извне.
- Символы (Symbol) или приватные поля класса (с префиксом # в современных версиях).
Это важно для защиты внутреннего состояния объекта от прямого доступа и изменения извне, что помогает избежать непредвиденных ошибок и поддерживает инварианты класса.
Пример с приватным полем класса:
class User {
#password;
constructor(name, password) {
this.name = name;
this.#password = password;
}
checkPassword(input) {
return input === this.#password;
}
}
const user = new User('Alice', 'secret');
console.log(user.checkPassword('secret')); // true
console.log(user.#password); // SyntaxError: Private field '#password' must be declared in an enclosing class
Таким образом, внутренние данные защищены от прямого доступа.