@dimentimor

Как «перехватить» обращение к несуществующему свойству объекта?

Здравствуйте.

Можно ли написать геттер для несуществующих свойств?
Что-бы не писать if ('foo' in bar), каждый раз.. Как спрятать проверку "под капот"?
  • Вопрос задан
  • 788 просмотров
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Вот прям ваш случай: https://learn.javascript.ru/proxy
https://jsfiddle.net/yarkov_aleksei/q3doo0so/
let dictionary = {
  'Hello': 'Привет',
  'Bye': 'Пока'
}

dictionary = new Proxy(dictionary, {
  get(target, phrase) {
    if (phrase in target) {
      return target[phrase]
    } else {
      console.log(`No phrase: ${phrase}`)
      return phrase
    }
  }
})

// Обращаемся к произвольным свойствам словаря!
alert( dictionary['Hello'] ) // Привет
alert( dictionary['Welcome']) // Welcome (без перевода)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы