Closed chengazhen closed 4 years ago
const target = { _id: '1024', name: 'vuejs' } const proxy = new Proxy(target, { get(target, propkey, proxy){ if(propkey[0] === '_'){ throw Error(`${propkey} is restricted`) } return Reflect.get(target, propkey, proxy) //这里target将会被改为 { name: [Circular], _id: '1024' },相当于改变了target,不理解这 一步是需要产生什么效果呢,如果不做任何操作也可以成功打印出来("vuejs") }, set(target, propkey, value, proxy){ if(propkey[0] === '_'){ throw Error(`${propkey} is restricted`) } return Reflect.get(target, propkey, value, proxy) } })
兄弟代码写的有点马虎哦,毕竟作为文档还是要认真一点
Proxy的函数负责的是:拦截并定义拦截时具体的操作 Reflect的静态函数负责的是:最终执行对象的操作
上面的代码跟 return target[propkey] 效果是类似的,不要这句会报错噢
return target[propkey]
相关问题我写在了代码里面