Proxy代理
Proxy对象 在一个系统中,总要存储一些数据,对于这些数据,可能有一些是希望我们访问的,但是总有一些是中重要的,不希望我们访问的,希望保护起来,因此ES6新增了代理,在目标对象前架设个“拦截“层,外界对该对象的访问必须通过这层拦截,我们可以对外界的访问进行过滤和改写。 注意:Proxy修改了某些操作的默认行为,等同于在语言层做出修改,所以也属于”元编程“,即对语言进行编程。 语法: let proxy = new Proxy(target,handler) target 表示被代理的对象 handler 表示操作被代理的对象 注意: [[]] 为引擎内部属性或方法,外部不能获取 let star = { name: '尼古拉斯赵四', girlFriend: '赵丽颖', age: 40 } // 代理对象 let proxy = new Proxy(star, { // 取值方法 get(target, key, receiver) { // 如果是重要的数据,不要访问 if (key === 'girlFriend') { throw new Error('不能访问girlFriend') } if (key === 'age') { return 0 } // target 代表 star, key 代表属性名称, receiver代表proxy,