3. Proxy pattern
by petrussola
JavaScript
const car = {
name: "Toyota",
model: "Corolla"
}
const handler = {
get: (target, prop, receiver) => {
console.log(`Someone is requesting access to the property ${prop}`)
return target[prop]
},
set: (target, prop, value) => {
console.log(typeof value, "value")
if (typeof value === "number") {
console.log(`The ${prop} you are trying to change can\'t be a number`)
return
}
target[prop] = value
console.log(`Property has been changed to ${value}`)
return
}
}
const carProxy = new Proxy(car, handler)
console.log(carProxy.name)
console.log(carProxy.model)
carProxy.name = "Ford"
carProxy.model = 2345
console.log(carProxy.name)