Reflect的作用,target,property,value,receiver代表啥

1.真的proxy

复制代码
let target ={name:'张三'}
let handler = {
  get(target,property,receiver){
    console.log(1,target,2,property,3,receiver)
    return Reflect.get(target,property,receiver)
  },
  set(target,property,value,receiver){
    console.log('a',target,'b',property,'c',value,'d',receiver)
    return Reflect.set(target,property,value,receiver)
  }
}
let proxy = new Proxy(target,handler)
console.log(proxy.name)
proxy.name = '李四'
// console.log(proxy.name)

以上代码用浏览器控制台运行下如下

可知target,property,value,receiver的值

不知道为啥这里的target换成多层的对象就不起作用了

复制代码
let target ={name:'张三',info:{age:18,sex:'男'}}
console.log(proxy.info.sex)
proxy.info.sex = '女'

2.自己写的proxy

很明显这里的reflect.get被return target[key]替代,

reflect.set被 '=' 替代

说明了reflect在proxy的作用

复制代码
let handler = {
  get(target, key, receiver) {
    console.log(1, target, 2, key, 3, receiver)
    return target[key];
  },
  set(target, key, value, receiver) {
    console.log('a', target, 'b', key, 'c', value, 'd', receiver)
    target[key] = value;
    return true;
  },
};
let target ={name:'张三'}
let proxy = new Proxy(target, handler);
console.log(proxy.name)
proxy.name = '李四'
console.log(proxy.name)
相关推荐
万少2 分钟前
AI 智能记账 Skill,基于飞书 CLI + 多维表格构建。
前端
颜酱2 分钟前
语音合成与视觉模型api接入实现
前端·javascript·人工智能
你听得到114 分钟前
Get 这波之后,我把 Flutter 状态管理重新看了一遍:新项目到底该选谁?
前端·flutter·架构
一天睡25小时23 分钟前
做产品前,先别急着写代码:我是怎么判断一个点子值不值得做的
前端
霍理迪26 分钟前
TS—函数、类、泛型
前端
一 乐40 分钟前
工会管理|基于springboot + vue工会管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·工会管理系统
cc.ChenLy1 小时前
浏览器缓存机制详解:如何彻底解决前端代码更新后的缓存问题
前端
阿珊和她的猫1 小时前
使用 TypeScript 实现数组类型判断方法
javascript·typescript·状态模式
XTTX1101 小时前
Vue3+Cesium电子围栏效果
前端·javascript·vue.js
KevinWang_1 小时前
AI 基础设施及其应用
前端