Что такое приватные поля с префиксом # в классах?
Ответы
Ivan Gagarinov
27 июля 2022
Приватные поля в классах с префиксом #
в имени свойства, созданы, чтобы ограничить доступ к таким полям вне класса, такие свойства доступны лишь внутри класса. Например:
class MyClass {
#message;
setMessage(newMessage) {
this.#message = newMessage;
}
getMessage() {
return this.#message;
}
}
const obj = new MyClass();
obj.#message = 'hello'; // Error!
Внутри класса MyClass
определено приватное свойство message
, которое не доступно вне класса. При попытке обратиться к нему напрямую (obj.#message
), возникает ошибка. Но можно обращаться к нему через публичные методы, которые мы определили getMessage()
и setMessage()
:
obj.setMessage('hello');
console.log(obj.getMessage()); // => hello
37
0
Александр Невский
10 мая 2023
спасибо) полезно)
6
0