Приватные аксессоры (Private Accessors) - это новая функциональность в языке JavaScript, введенная в стандарте ECMAScript 2022. Они позволяют создавать приватные свойства объекта, доступные только внутри класса или модуля.
Приватные аксессоры могут быть геттерами (get) и сеттерами (set) для приватных свойств объекта. Для создания приватного аксессора необходимо использовать символ #
перед именем свойства.
Пример использования приватных аксессоров в JavaScript:
class Person {
#name // приватное свойство
constructor(name) {
this.#name = name
}
getName() {
// публичный метод для получения приватного свойства
return this.#name
}
set name(value) {
// приватный сеттер для изменения приватного свойства
this.#name = value
}
}
const person = new Person("John")
console.log(person.getName()) // Вывод: "John"
person.name = "Bob" // изменяем приватное свойство через приватный сеттер
console.log(person.getName()) // Вывод: "Bob"
В этом примере, мы создаем класс Person
, который имеет приватное свойство #name
, доступное только внутри класса через методы getName()
и set name(value)
. Метод getName()
является публичным и возвращает значение приватного свойства, а метод set name(value)
является приватным сеттером и изменяет значение приватного свойства.
Приватные аксессоры могут быть полезны для создания классов с приватными свойствами и методами, которые не могут быть изменены или получены извне класса. Они также могут быть использованы для создания модулей с приватными функциями и переменными.
Приватные аксессоры находятся в стадии предложения и могут не быть поддерживаемыми во всех браузерах и средах выполнения JavaScript на данный момент. Тем не менее, их использование может улучшить читаемость и поддерживаемость кода, особенно в крупных проектах.