Skip to content

Instantly share code, notes, and snippets.

@mp5maker
Last active December 20, 2020 10:25
Show Gist options
  • Save mp5maker/fc7e5f0bad4b9c4f3196768092727343 to your computer and use it in GitHub Desktop.
Save mp5maker/fc7e5f0bad4b9c4f3196768092727343 to your computer and use it in GitHub Desktop.
Simple Person Object
const person = {
name: "John Doe",
age: 49
}
const handler = {
get: function(target, props, receiver) {
console.log(target) // eg: { name: "John Doe", age: 49 }
console.log(props) // eg: name
console.log(receiver) // eg: Proxy { name: "John Doe", age: 49 }
console.log([...arguments]) // eg: [ target, prop, receiver ]
if (props == 'sir') return `Sir, ${target['name']}`
return Reflect.get(...argument)
}
}
const personProxy = new Proxy(person, handler)
console.log(personProxy.name) // John Doe
console.log(personProxy.age) // 49
console.log(personProxy.sir) // Sir, John Doe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment