Javascript: Особый объект

JS: Объектно-ориентированный дизайн 7 сообщений
Обновлено: 08 сент., 17:38
161
Студент
87%
Завершения

Объекты JavaScript позволяют обращаться к собственным свойствам. При обращении к свойству, которое не было установлено, возвращается undefined:

const obj = {
  key: 'value',
  key2: {
    key3: 'value3',
  },
};

obj.key2 // { key3: 'value3' }
obj.key2.key1 // undefined
obj.key2.key1.key0 // Uncaught TypeError: Cannot read property 'key0' of undefined

В этом испытании мы реализуем особый объект, позволяющий обращаться к несуществующим свойствам, не получая ошибки.

object.js

Реализуйте и экспортируйте по умолчанию функцию, которая принимает объект и позволяет получать из него свойства по любому имени. При обращении к несуществующему свойству не должно выбрасываться исключений или возвращаться undefined. Функция должна возвращать объект Proxy.

import createObject from './object.js';

const obj = createObject({
  key: 'value',
  key2: {
    key3: 'value3',
  },
});

obj.key2 // { key3: 'value3' }

// код корректно продолжает работу:
obj.key2.key1
obj.key2.key1.key0
obj.obj.obj

Подсказки

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов