0
Students
JavaScript objects allow you to access their own properties. When accessing a non-existing property, undefined is returned:
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
In this challenge, we'll implement a special object that enables us to access nonexistent properties without getting an error.
object.js
Implement and export as default a function that takes an object and allows you to access its properties by any name. When attempting to access a property that doesn't exist, neither exceptions nor the undefined
should be thrown. The function should return a Proxy object.
import createObject from './object.js';
const obj = createObject({
key: 'value',
key2: {
key3: 'value3',
},
});
obj.key2 // { key3: 'value3' }
// the code keeps executing:
obj.key2.key1
obj.key2.key1.key0
obj.obj.obj
Tips
- Lesson on Proxy
- Proxy MDN docs
For full access to the challenge you need a professional subscription.
A professional subscription will give you full access to all Hexlet courses, projects and lifetime access to the theory of lessons learned. You can cancel your subscription at any time.