С въвеждането на 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 #имеНаПолето.
Защо частните полета са важни?Частните полета защитават данните ти от неоторизиран достъп и насърчават капсулацията в обектно ориентираното програмиране.
Как работи достъпът до частни полета?Достъпът до частни полета е разрешен само в рамките на класа. Външен скрипт или друг код не може директно да получи достъп до тях.