# Observando mudanças em objetos
Precisa disparar uma função quando alguma propriedade de um objeto sofrer algum tipo de alteração?
Simples! Com o JavaScript conseguimos definir funções customizadas de #getters e #setters, dessa forma, a gente consegue monitorar toda vez que uma propriedade é acessada ou alterada de uma forma extremamente simples!
const data = {}
Object.defineProperty(data, 'counter', {
// Executa sempre que um valor for atribuido a data.counter
set: value => {
console.log(`Value chaged to: ${value}`)
doSomethingWhenValueChanges(value)
}
})
data.counter = 2 // Value chaged to: 2