Пример кода:
Код: Выделить всё
const target = { secret: 123, public: 456 };
const proxy = new Proxy(target, {
has(t, prop) {
if (prop === 'secret') return false; // Hide from `in` checks
return prop in t;
}
});
console.log('secret' in proxy);
console.log(proxy.secret);
- Почему оператор в не блокирует Direct Доступ к собственности? Есть ли конкретные ловушки (например, Get , ownkeys ), которые должны быть реализованы вместе для согласованности?
- правильно возвращает false .
Код: Выделить всё
'secret' in proxy - по -прежнему возвращает значение 123 .
Код: Выделить всё
proxy.secret
Если оператор in возвращает false для 'secret' , доступ к proxy.secret должен выбросить ошибку или вернуть Undefined .
попытки исправить:
- Пробовал только с помощью trap. < br/>
- Исследуют другие ловушки, такие как Get и ownkeys , но не уверены, как их координировать.
Подробнее здесь: https://stackoverflow.com/questions/794 ... roperty-is