Uso proxies anidados así en mi código:
let proxyValidator = { get(target, property) { console.log(target) if(typeof target[property] == "object") { return new Proxy(target[property], proxyValidator) } else { return target[property] } }, set(target, property, value) { console.log(target) target[property] = value } }Esto me permite hacer lo siguiente:
let colors = new Proxy({ cold: { darker: { darkBlue: "#00008b", darkViolet: "#330066", }, lighter: { lightGreen: "#90ee90", lightBlue: "#add8e6", } }, warm: { orange: "#ffa500", red: "#00ff00", } }, proxyValidator) // Setting red to the true red color colors.warm.red = "#ff0000" // Works. colors.warm.red = "#ff0000" funciona y realmente cambia el valor en el objeto de colores. Sin embargo, no puedo cambiar el color de esta manera:
let colorReference = colors.warm.red colorReference = "#ff0000" ¿No debería obtener una referencia a colors.warm.red ? Si es así, ¿por qué no cambia y cómo puedo simular esto? Es bastante importante para mí usar proxies porque estoy desarrollando una biblioteca.