Димитар Георгиев

Symbol

Speakings 0 комментариев
Symbol
  • Symbol - Каждъй раз когда саздаем новъй Симбол , тъй создаеш уникальная 
    структура, даннъй каторъй в никаким образам больше не повторит. 
    Symbol может использовзат в качестве имеон для обект. Я могу исползую 
    Симбол в качество ключей для обекта. По сути не могу изменит тот обект каторъй
    я инициировал заранее. Taк как я не использувал переменную етот Symbol
    потерялся и боле я никаких образам изменит не магу.
    
    Изменит их извне я никак не смагу т.е. у меня ето поле польностю защищено от 
    озменение клиента.
    
    У меня есть доступ через вот етой област видимости . У меня появился
    доступ к етому имея но доступ к непосредствено на то что ссилаеться this я 
    могу получит в етой внутре защиящюная област видимости. Symbol попътка создат 
    приватнъйе поля, класъйх, но хоть и видимъйе из вне. Symbol позволяет 
    защищат даннъй, плюс она позволяет создават уникальнъй для все системъй 
    обектъй хоть с единакавъй именами ( аргументами ). 
    
    Уже есть зарание созданъйе Symbol от сам браузер на уравне ядра. Mъй не можем с 
    помощи for-of объйти обект, нет такой възможностте, не съществует операция в
    js каторъй позволяла  обоити обекта с for-of. Генератор позволяет создават 
    прериваемъйе функций .
    
    this ссилаеться на обект person {} и можно достучаться до етий параметръй  
    через this. Логика обхода обекта через Symbol.iterator т.е того символъй 
    каторъй бъйл изначально вшит. Будет ли съществует етого обхот итератора 
    по ключа обекта когда у нас нет примитива? 
    
    Когда я запрашиваю Object,keys от екемпляра етого класса this, символъй не
    итерируемъй т.е. наш кейс не может пройтис по етий симболъй а иначе етъй Symboly 
    не бъли бъй такие уникальние.
    
    Мъй просто позволим нашего Симбол оператор пройтис не по ключа а по значение. 
    Moжни оередат име ключа и значение такого Symbola. LifeHach мозжно изменит прототип
    обекта прямо в какой нибуд файле обратится к класу Оbject к его прототипу,
    сдес обратиться к Symbol.iterator и создат сдес функцию генератор и сдес описат 
    логику каторъй нам интересна ( параход по всем ключа). Тепер мъй сделали все
    обектъй, кроме примитиву итерируемъй, все класса унаследванъйе из класса Обект.
    Я определил на уравне класса в прототипе Symbol.iterator и создал сдес функция 
    генератор. 
    
    С помощю вот етой логике с уield проходит for-of всем поля обекта. 
    for-of 
    изначально не опрделен его можно определит либо в прототипе object, 
    либо в прототипе нашего класса каторъй мъй описали. С циклами  for-of работает 
    нормално , дело том что в классе Number  вот етой Symbol.iterator присуствует,
    я таким образам могу изменит порядък обхода мойему масива. 
Назад Вперед
Войдите или зарегистрируйтесь
чтобы оставить комментарий