当前位置: 首页 > news >正文

proxy代理与reflect反射

proxy代理与reflect

在这之前插入一个知识点arguments,每个函数里面都有一个arguments,执行时候不传默认是所有参数,如果传了就是按顺序匹配,箭头函数没有
代理函数
代理对象也就是生成一个替身,然后这个替身处理一切的get跟set

在这里插入图片描述

    let obj = {name: '张三',age: 18,sex: '男'}let proxy = new Proxy(obj, {get: (target, key, v) => { //读取 1.原对象,2.属性名3.proxy对象if (key === 'age') {return target[key] = '今年108岁'} else {return target[key]}},set: (target, key, v) => { //存储 1.原对象,2.属性名3.修改值if (key == 'name') {target[key] = '你的年龄108岁'  //不需要return 直接返回就行} else {target[key] = v}},deleteProperty: (target, key) => { //删除第一个参数对象,第二个属性名return delete target[key]},has: (target, key) => {   //包含第一个参数对象,第二个属性名console.log(target, key);return key in target   //返回值}})// delete proxy.sex  //删除proxy.name = '里斯'console.log('age' in proxy); //包含

在这里插入图片描述

proxy常见的几种方法

  • get :获取属性 原始对象,属性名,proxy 对象
  • set:修改属性 对象,属性名 没有返回值,直接修改,不过在写的时候常常返回一个Reflect
  • deleteProperty:删除属性 对象,删除属性名
  • has:包含 对象,包含属性名
    -apply :拦截,可以进行函数方法的一个拦截处理,具体看下图

在这里插入图片描述

reflect 反射

Reflect.apply(Math.ceil,null,[9.8])//向上取整10  第一个参数方法,第二个参数this指向,第三个参数args参数数组
Math.ceil(9.8)//10

简而言之就是对现在的一个对象或者方法的复印部分打个比方,下面两种方式都能删除也就是es6的一种新语法兼容性并不是很好,现阶段,对象object中的某些方法同时部署在reflect上,也就是说object约等于reflect并且明确表明会慢慢的往上面迁移,比如object.defineProperty,reflect.defineProperty

 let json={a:1,b:2}delete json.aconsole.log(json);//{b:2}Reflect.deleteProperty(json,'a')console.log(json);//{b:2}

在这里插入图片描述

最后来一个简单的双向绑定代码

<div><input type="text" id="input"><p id="show"> </p></div><script>let obj = {}const input = document.getElementById('input')const show = document.getElementById('show')let newObj = new Proxy(obj, {get(oldObj, key, proObj) {return Reflect.get(oldObj, key, proObj)},set(oldObj, key, value) {if (key === 'text') {input.innerHTML = valueshow.innerHTML = value}return Reflect.set(oldObj, key, value)}})input.addEventListener('keyup', function (e) {newObj.text = e.target.value})</script>

在这里插入图片描述

相关文章:

proxy代理与reflect反射

proxy代理与reflect 在这之前插入一个知识点arguments&#xff0c;每个函数里面都有一个arguments&#xff0c;执行时候不传默认是所有参数&#xff0c;如果传了就是按顺序匹配&#xff0c;箭头函数没有 代理函数 代理对象也就是生成一个替身&#xff0c;然后这个替身处理一切的…...

机器视觉 多模态学习11篇经典论文代码以及解读

此处整理了深度学习&#xff0d;机器视觉&#xff0c;最新的发展方向&#xff0d;多模态学习&#xff0c;中的11篇经典论文&#xff0c;整理了相关解读博客和对应的Github代码&#xff0c;看完此系列论文和博客&#xff0c;相信你能快速切入这个方向。每篇论文、博客或代码都有…...

Redis过期删除策略

目录引出Redis过期删除策略Redis的两种过期策略&#xff1a;定期删除 惰性删除定期删除惰性删除Redis两种过期删除策略存在的问题Redis缓存淘汰策略Redis中的LRU和LFU算法1、LRU&#xff08;Least Recently Userd最近最少使用&#xff09;LFU 算法的引入2、LFU&#xff08;lea…...

数据流分析之def-use链分析

数据流分析之def-use链分析引言1 相关概念2 算法2.1 算法规则2.2 算法流程2.3 算法优化3 举例引言 编译过程中&#xff0c;知道函数中每个指令引用的变量(或虚拟寄存器)来自于前面的哪一次赋值是很有必要的。例如llvm中对store/load转phi优化&#xff0c;就需要准确知道该信息…...

【0175】【内存上下文】如何利用context_freelists[]来彻底释放MemoryContext中分配的所有内存(8 - 2)

文章目录 1. MemoryContext 删除的另一种形式1.1 context_freelists[] 数组1.1.1 context_freelists[0] 和 context_freelists[1] 的意义1.1.2 context_freelists[0] 和 context_freelists[1] 各自功能示意图1.2 context_freelists[] 各成员在删除context时的初始化情况1.2.1 c…...

Redis实战—黑马点评(一) 登录篇

Redis实战 — 黑马点评&#xff08;一&#xff09; 登录篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Redis实战 — 黑马点评&#xff08;一&#xff09; 登录篇1. 项目…...

建造者模式-搭建Qt窗口案例

文章目录logging日志输出子线程设计模式可视化插件类界面设计呼吸灯实现综合案例实现本综合案例&#xff0c;应用到如下的知识点。logging日志输出 自定义日志记录器&#xff0c;实现将日志输出到指定的控件中。 # 自定义日志记录器类子线程 threading实现子线程及Qt中的子线…...

*from . import _imaging as core : ImportError: DLL load failed: 找不到指定的模块

错误提示如上。为了解决这个问题&#xff0c;首先参考了解决 from . import _imag…模块。. 首先尝试了彻底卸载pillow&#xff1a;conda uninstall pillow &#xff1b; pip uninstall pillow 然后重装 pip install pillow&#xff0c;发现问题仍然没有解决。 并且尝试了windo…...

关于尚硅谷Hadoop-报错解决方案日志

以后都会将学习Hadoop中遇到的问题写到这里&#xff0c;供自己参考&#xff0c;能帮到大家更好SecondaryNameNode未启动解决办法&#xff1a;可能是端口被占用&#xff08;我没遇到&#xff09;hadoop104未在/etc/hosts配置映射路径我在hadoop104的/etc/hosts 添加了所有hadoop…...

前端高频面试题-HTML和CSS篇(二)

&#x1f4bb; 前端高频面试题-HTML和CSS篇&#xff08;二&#xff09; &#x1f3e0;专栏&#xff1a;前端面试题 &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向…...

神经网络损失函数分布可视化神器

论文名称和地址&#xff1a;Visualizing the Loss Landscape of Neural Netshttps://arxiv.org/pdf/1712.09913.pdf1.1 背景和动机作者主要想研究几个问题&#xff1a;为什么我们能够最小化高度非凸神经损失函数&#xff1f;为什么得到的最小值这个结果具有泛化性&#xff1f;不…...

ansible的部署与命令模块

目录 一、ansible的概述 1、ansible简介 2、ansible特点 3、官方网站 4、ansible的模块组成 5、ansible的工作机制 二、ansible部署 1、ansible的安装 三、ansible的命令行模块 1、command模块 2、shell模块 3、cron模块 4、user模块 5、group模块 6、copy模块 7…...

开发人员与测试人员关系的理解

在软件开发中都会有开发人员&#xff08;以下简称开发&#xff09;和测试人员&#xff08;以下简称测试&#xff09;&#xff0c;在一些小型公司可能并没有测试&#xff0c;仅仅是开发兼任测试。在这里我仅针对于有专业的测试和专业的开发的项目。 每个公司应该都有考核机制&am…...

直面原理:5 张图彻底了解 Android TextToSpeech 机制

ChatGPT 如此火爆&#xff0c;但它的强悍在于 NLU&#xff08;自然语言理解&#xff09;、DM&#xff08;对话管理&#xff09;和 NLG &#xff08;自然语言生成&#xff09;这三块&#xff0c;而 Recognition 识别和 TTS 播报这两块是缺失的。假使你的 App 接入了 ChatGPT&…...

Ruby Socket 编程

Ruby提供了两个级别访问网络的服务&#xff0c;在底层你可以访问操作系统&#xff0c;它可以让你实现客户端和服务器为面向连接和无连接协议的基本套接字支持。 Ruby 统一支持应用程序的网络协议&#xff0c;如FTP、HTTP等。 不管是高层的还是底层的。ruby提供了一些基本类&a…...

Vue3+ElementPlus+koa2实现本地图片的上传

一、示例图二、实现过程利用Koa2书写提交图片的后台接口这个模块是我写的项目中的其中一个板块——上传图片&#xff0c;这个项目的后台接口主要是是使用了后端的Koa2框架&#xff0c;前端小伙伴想要试着自己书写一些增删改查的接口可以从这个入手&#xff0c;Koa2用来了解后端…...

常见漏洞之 Fastjson

数据来源 01 Fastjson相关介绍 》Fastjson概述 》Fastjson历史漏洞 02 Fastson的识别与漏洞发现 》Fastjson寻找 》Fastjson漏洞发现&#xff08;利用 dnslog&#xff09; 03 修复建议 建议1&#xff1a;使用fastjson1.2.83版本&#xff1b; Github地址&#xff1a;https:…...

绕过Nginx Host限制

目录绕过Nginx Host限制SNI第三种方法&#xff1a;总结绕过Nginx Host限制 SNI SNI&#xff08;Server Name Indication&#xff09;是 TLS 的扩展&#xff0c;这允许在握手过程开始时通过客户端告诉它正在连接的服务器的主机名称。 作用&#xff1a;用来解决一个服务器拥有…...

Visual Studio 2022 常用快捷键,记录一下别忘记~

Visual Studio 2022 常用快捷键&#xff0c;记录一下别忘记~ CtrlEC 注释代码 CtrlEU 取消注释代码 CtrlED 格式化全部代码 CtrlShiftA 新建类 CtrlRG 删除无效Using CtrlH 批量替换 CtrlG 跳转到指定行 CtrlEE 在交互窗口中运行选中代码(很实用) AltEnter 快速引用 …...

软件测试回顾---重点知识

软件测试重点知识回顾 8.1.1软件测试的目的是 尽可能的发现程序中的错误并不是发现所有的错误并不是证明程序是错误的也不是为了调试程序8.1.2白盒测试根据什么设置测试用例&#xff1f;黑盒测试根据什么设置测试用例&#xff1f; 白盒测试根据内部逻辑来设计的黑盒测试根据的是…...

Slurm集群GPU资源管理实战:如何用`--gres=gpu`参数正确调度你的GTX1080Ti?

Slurm集群GPU资源管理实战&#xff1a;如何用--gresgpu参数正确调度你的GTX1080Ti&#xff1f; 在AI研究与数据科学领域&#xff0c;GPU资源的高效利用直接关系到模型训练与实验的成败。许多团队虽然配备了GTX1080Ti等高性能显卡&#xff0c;却常因Slurm集群调度不当导致资源闲…...

AI Agent Harness Engineering 未来生态:开源 vs 闭源的竞争与合作格局

AI Agent Harness Engineering 未来生态&#xff1a;开源 vs 闭源的竞争与合作格局 引言&#xff1a;AI Agent不是终点&#xff0c;Harness才是通用智能落地的核心阀门 1.1 从“AI大模型&#xff08;LLM&#xff09;元年”到“AI Agent生态元年”&#xff1a;技术拐点的悄然发…...

PC市场转型:从性能竞赛到价值回归的产业变革

1. 市场格局的深层演变&#xff1a;从“性能至上”到“够用就好”如果你在2012年前后关注过PC市场&#xff0c;应该能清晰地感受到一股寒流。那几年&#xff0c;行业里最热门的话题不再是英特尔又发布了多快的处理器&#xff0c;或者英伟达的显卡性能提升了多少百分比&#xff…...

终极智能温控指南:FanControl风扇控制软件完整配置教程

终极智能温控指南&#xff1a;FanControl风扇控制软件完整配置教程 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

别再手动调阈值了!OpenCV实战:用Otsu和自适应阈值搞定光照不均的图片分割

智能图像分割实战&#xff1a;Otsu与自适应阈值技术解决光照不均难题 在工业质检、医疗影像分析、自动驾驶等场景中&#xff0c;图像分割的准确性直接影响最终结果。但现实世界的光照条件往往复杂多变——同一张图片可能同时存在过曝和欠曝区域&#xff0c;传统全局阈值方法在…...

分数阶傅里叶变换在声纳阵列分析中的应用与优化

1. 分数阶傅里叶变换在声纳阵列分析中的核心价值在水下声学工程领域&#xff0c;准确计算声纳阵列的辐射模式一直是个技术难点。传统FFT算法虽然计算效率高&#xff0c;但在处理特定方位角的辐射特性时存在明显的精度局限。2005年日本防卫厅技术研究本所的这项研究&#xff0c;…...

BaiduPCS-Go深度解析:从原理到实践的性能调优进阶指南

BaiduPCS-Go深度解析&#xff1a;从原理到实践的性能调优进阶指南 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go BaiduPCS-Go作为一款功能强大的命令行百度…...

Gemini自动生成PPT实战手册:从零输入到专业演示文稿,3步完成95%的幻灯片工作流

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini自动生成PPT的核心原理与能力边界 Gemini 生成 PPT 的本质并非传统模板填充&#xff0c;而是基于多模态理解与结构化内容重构的端到端推理过程。其核心依赖于对用户输入&#xff08;文本、大纲、…...

OpenClaw:让 AI 从 “对话” 走向 “实干” 的开源智能体

在人工智能技术快速发展的今天&#xff0c;大语言模型的对话能力已日趋成熟&#xff0c;但 “能说不能做” 的痛点始终制约着 AI 的实际应用价值。2026 年&#xff0c;一款名为 OpenClaw&#xff08;社区昵称 “小龙虾 AI”&#xff09;的开源项目迅速走红&#xff0c;它以 “真…...

工业意识:03 组态软件怎么选?WinCC、FactoryTalk、国产一篇讲透

03 组态软件怎么选?WinCC、FactoryTalk、国产一篇讲透 前面咱们把SCADA聊成“千里眼”,MES聊成“透明玻璃房”,现在终于到最爽的部分——画面组态!简单说,就是用鼠标拖拖拽拽,在电脑上搭出那些监控大屏:仪表盘、按钮、趋势图、报警灯、3D管道……全连上PLC变量,点一下…...