З впровадженням ES6 JavaScript тепер має можливість декларації приватних полів у класах. Це особливо важливо для капсулювання даних і запобігання небажаному доступу ззовні. У цьому навчальному посібнику ви дізнаєтеся, як ефективно реалізувати та використовувати приватні поля, щоб зберегти ваші дані в безпеці.
Основні висновки
- Приватні поля оголошуються з допомогою хеш-символу (#).
- Доступ до приватних полів можливий лише всередині класу.
- JavaScript не має ключових слів для видимості, як інші мови програмування.
Покрокова інструкція
Оголошення класу та створення приватних членів
Спочатку ми створимо клас і оголосимо приватне поле. Ми почнемо з класу під назвою Secret, який міститиме приватне поле з іменем #secret. Це поле зберігає конфіденційну інформацію, яка не повинна бути доступною для зовнішніх запитів.

Створення екземпляра класу та виклик методу
Наступним кроком ми створимо екземпляр класу Secret і викличемо метод print(), щоб вивести значення приватного поля. Це виглядатиме наступним чином:
Спроба доступу ззовні до приватних полів
Тепер буде цікаво, коли ви спробуєте безпосередньо отримати доступ до приватного поля #secret ззовні. Ви помітите, що це не спрацює. Компілятор JavaScript вже попередить вас під час написання коду.
Якщо ви введете mySecret.#secret, ви отримаєте повідомлення про помилку у Visual Studio Code. Це показує, що приватні поля дійсно виконують свою мету: вони недоступні поза класом.
Перевірка видимості з допомогою Object Keys
Добрим методом тестування є перевірка, чи приватне поле відображається при використанні Object.keys(). Якщо ви спробуєте перерахувати ключі екземпляра, ви повинні побачити, що #secret не входить до списку.
Ви бачите, що приватне поле не перераховується. Це підкреслює перевагу капсулювання даних у JavaScript.
Різниця з попередніми конвенціями
Раніше були конвенції, які вказували на приватні поля за допомогою подвійних підкреслень. Однак цей метод дійсно не працює, оскільки він не забезпечує захист від доступу до приватних властивостей. З впровадженням приватних полів з хеш-символом ви тепер маєте чистий і ефективний спосіб оголошення приватних змінних.
Створення статичних приватних полів
Ви також можете оголосити статичні приватні поля у вашому класі. Це працює подібно до змінних екземпляра, але вимагає трохи іншого підходу до ініціалізації.
console.log(Secret.getPrivateStaticField()); // Вивід: "Я приватний"
Важливо зазначити, що ви здійснюєте статичний доступ з синтаксисом імені класу.
Висновок
Використовуючи приватні поля в класах JavaScript, ви можете бути впевнені, що важливі дані обробляються лише внутрішньо в класі. Це велика перевага для капсулювання і безпеки ваших структур даних. Тепер ви дізналися, як реалізовувати приватні поля, отримувати до них доступ ззовні та ефективно забезпечувати капсулювання даних.
Підсумок – ефективне використання приватних полів у класах JavaScript
У цьому посібнику ви освоїли процес впровадження та використання приватних полів у класах JavaScript. Тепер ви знаєте, що оголошення приватних полів здійснюється з допомогою хеш-символу (#), і доступ ззовні можливий.
Часті запитання
Що таке приватні поля в JavaScript?Приватні поля - це властивості класу, які недоступні ззовні і можуть оброблятися лише всередині класу.
Як оголосити приватне поле?Приватне поле оголошується шляхом попереднього написання хеш-символу (#) перед іменем, наприклад, #моєПриватнеПоле.
Чи можу я оголосити приватні поля статично?Так, ви можете також оголосити приватні поля статично, використовуючи синтаксис static #ім'яПоля.
Чому приватні поля важливі?Приватні поля захищають ваші дані від несанкціонованого доступу ззовні та сприяють капсулюванню в об'єктно-орієнтованому програмуванні.
Як працює доступ до приватних полів?До приватних полів можна отримати доступ лише всередині класу. Зовнішній скрипт або інший код не можуть отримати прямий доступ.