Показать сообщение отдельно
  #3 (permalink)  
Старый 13.07.2020, 19:18
Интересующийся
Отправить личное сообщение для Launder Посмотреть профиль Найти все сообщения от Launder
 
Регистрация: 25.04.2019
Сообщений: 19

Ошибка ясна, геттер выдаёт значение, а значение - объект. Вызвав один раз, мы сохранили прямую ссылку на объект в переменную, вот пароль и не нужен. Грубо говоря, при вызове
alert( passObj.p.a );
а далее, в конце вместо a поставлять b и c, то пароль потребуется каждый раз. Также можно сделать функцию
let getObj = function acc() {  return passObj.p  }
и вызывать вот так:
alert( getObj().a );

Но, поместить геттер в переменную, похоже, увы, не получится - только её результат. А результат уже обнаружит себя, то есть поместить функцию (которая запрашивает пароль), под видом "просто объекта", уже врят ли получится...
Паролить на клиенте я не собираюсь, просто это наглядный(для меня) пример оболочки на объект. Как раз и хочу понять, насколько прозрачную можно сделать оболочку на объект и есть ли, при этом, альтернатива и прокси.
Ответить с цитированием