1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| let target = { name: 'gss', age: 18, hob: { a: [1,2,3], b: [3,4,5], c: [4,5,6] } }
let handler = { get: (target, prop) => { console.log('getter-'+prop, typeof target[prop]); if (typeof target[prop] === 'object' && target[prop] !== null) { return new Proxy(target[prop], handler) } return target[prop] }, set: (target, prop, val) => { console.log(val); target[prop] = val } }
let pro = new Proxy(target, handler)
console.log(pro.name) pro.age = 29 pro.sex = 'man' console.log(pro.hob.a); pro.hob.a = [1,1,1]
|