Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/proxy-invariants

Какие инварианты (invariants) `Proxy` не может нарушить?

УглублённыйProxy и метапрограммирование

Proxy обязан соблюдать инварианты для консистентности языка:

  1. get не может вернуть значение, отличное от свойства с writable: false, configurable: false
  2. set не может успешно завершиться для свойства с writable: false, configurable: false
  3. has не может скрыть non-configurable собственное свойство
  4. deleteProperty не может удалить non-configurable свойство
  5. ownKeys обязан включать все non-configurable собственные свойства
  6. getPrototypeOf должен возвращать реальный прототип, если объект non-extensible

Нарушение инвариантов бросает TypeError.

  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov