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 targetkey替代,

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)
相关推荐
an3174210 小时前
使用 LangGraph + DeepSeek 构建 AI 面试官:状态图设计与实践
前端·ai编程
代码不加糖10 小时前
MessageChannel是什么,有什么使用场景?
前端·javascript
小小龙学IT10 小时前
HTMX:让 HTML 重新成为前端核心的超轻量动态交互库
前端·html·交互
星栈10 小时前
写 Makepad Demo 不难,难的是把它写成项目
前端·rust
用户0595401744610 小时前
localStorage清除策略踩坑实录:一个过期的token让我排查了3小时
前端·css
Nanachi10 小时前
跨框架的前端源码定位,再加上点LLM
前端
人无远虑必有近忧!11 小时前
fetch请求图片报跨域
前端·javascript
谢院柯11 小时前
解决修改 node_modules 依赖库源码后重复安装问题的几种方案
前端
疯狂打码的少年11 小时前
【程序语言与编译】NFA转DFA(子集构造法)
前端·笔记
2401_8685347811 小时前
5G和4G接入网对比介绍
vue.js