Refference with Proxies
by João Vitor Scheuermann
JavaScript
function reference(obj) {
function isObject(toValidate) {
return typeof toValidate === 'object'
}
for (let key in obj) {
if (isObject(obj[key])) obj[key] = reference(obj[key])
}
return new Proxy(obj, {
get(target, prop, receiver) {
if (prop in target) return target[prop]
else return undefined
},
set(target, prop, value) {
if (prop in target) target[prop] = value
else {
if (isObject(value)) target[prop] = reference(value)
else target[prop] = value
}
}
})
}
let data = {
creative: {
active: {}
}
}
let teste = reference(data)
teste.batata = [['lalalalalaa']]
console.log(JSON.stringify(data))