Показать сообщение отдельно
  #4 (permalink)  
Старый 13.07.2020, 20:02
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

function protectObject(object, password) {
    if (!password) {
        return object;
    }

    return new Proxy(object, {
        get(target, name) {
            const pwd = prompt('Enter password');
            if (!pwd || pwd !== password) {
                throw new Error('Access denied');
            }

            return target[name];
        }
    });
};

var a = {a: 1, b: 2, c: 3},
    p = protectObject(a, 'asd');

try {
    alert(p.a);
} catch (e) {
    alert(e.message);
}
Ответить с цитированием