let lenseHandler = {
keys: [],
get(target, key) {
this.keys.push(key)
return new Proxy(obj => {
return this.keys.reduce((acc, key) => {
return Reflect.get(acc, key)
}, obj)
}, lenseHandler)
}
};
const lense = new Proxy({}, lenseHandler);
const complexObject = {
first: {
second: {
third: {
result: 'Ловушка Джокера'
}
}
}
}
const joker = lense.first.second.third.result;
console.log(joker(complexObject));