当前位置: 首页 > 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; 白盒测试根据内部逻辑来设计的黑盒测试根据的是…...

2D图像处理:2D Shape_Base_Matching_缩放_旋转_ICP_显示ROI

文章目录 调试结果参考调试说明问题0:并行运行问题问题1:模板+Mask大小问题问题2:组合缩放和旋转问题3:可以直接将计算边缘的代码删除问题4:如何在原始图像上显示匹配到的ROI问题5:计算的原始旋转角度不需要判断,直接可以在ICP中使用问题6:绘制坐标轴问题7:绘制ROI调试…...

HTTP、HTTPS

目录 1.HTTP 1.1.概述 1.2.报文结构 1.2.1.请求报文 1.2.2.响应报文 1.3.方法 2.HTTPS 1.HTTP 1.1.概述 HTTP&#xff0c;超文本传输协议&#xff0c;WEB体系选用了该协议作为应用层协议。 1.2.报文结构 1.2.1.请求报文 HTTP的请求报文&#xff08;request&#xff0…...

计算机网络之http03:HTTPS RSA握手解析

不同的秘钥交换算法,握手过程可能略有差别 上文对HTTPS四次握手的学习 SSL/TLS Secure Sockets Layer/Transport Layer Security 协议握手过程 四次通信&#xff1a;请求服务端公钥 2次 秘钥协商 2次 &#xff08;1&#xff09;ClientHello请求 客户端向服务端发送client…...

一款针对EF Core轻量级分表分库、读写分离的开源项目

更多开源项目请查看&#xff1a;一个专注推荐.Net开源项目的榜单 在项目开发中&#xff0c;如果数据量比较大&#xff0c;比如日志记录&#xff0c;我们往往会采用分表分库的方案&#xff1b;为了提升性能&#xff0c;把数据库查询与更新操作分开&#xff0c;这时候就要采用读写…...

Linux环境变量讲解

目录 环境变量 alias命令 type命令 变量分类 Linux最主要的全局环境变量 环境变量 变量是计算机系统用于保存可变数值的数据类型 在Linux中&#xff0c;一般变量都是大写&#xff0c;命令是小写 在Linux中&#xff0c;变量直接使用&#xff0c;不需要定义&#xff08;更快…...

iptables和nftables的使用

文章目录前言iptable简介iptable命令使用iptables的四表五链nftables简介nftables命令的时候nftables与iptables的区别iptables-legacy和iptables-nft实例将指定protocol:ip:port的流量转发到本地指定端口前言 本文展示了&#xff0c;iptables和nftable命令的使用。 # 实验环…...

中小学信息学相关编程比赛清单及报名网站汇总(C++类)

1、NOI系列比赛(CSP-J CSP-S NOIP NOI APIO CTSC IOI ISIJ等) NOI官网 NOI全国青少年信息学奥林匹克竞赛https://www.noi.cn/ 2、蓝桥杯青少年创意编程大赛 https://www.lanqiaoqingshao.cn/home 3、中国电子协会考评中心...

06Makefile

Makefile 1、Makefile简介 一个工程中的源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至于进行更复杂…...

【C++】模板初阶

&#x1f345;讨厌废话&#xff0c;直接上车 ☃️1.泛型编程 void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void Swap(char&…...

vue+nodejs考研资料分享系统vscode - Visual Studio Code

前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 Express 框架于Node运行环境的Web框架, 目 …...

专门做电商的招聘网站/seo在线教程

设计思想&#xff1a; 在类体定义一个静态int型变量num&#xff0c;定义类的构造函数&#xff0c;num加一&#xff0c;并且输出创建num个类&#xff0c;在main方法中给num赋值为零&#xff0c;创建若干个对象。 流程图&#xff1a; 代码&#xff1a; public class TestStatic{ …...

lamp网站开发项目文档/中国推广网站

目前中国产业园区数量较多&#xff0c;同质化问题严重&#xff0c;相互之间竞争激烈。随着大数据时代的到来&#xff0c;大数据和社会经济的深度融合&#xff0c;产业园区将向智慧产业园区发展。 智慧园区是园区引入物联网、大数据、云计算等新技术进行全面数字化的基础之上&a…...

wordpress vue.js/高质量发展服务业

中职C语言期中模拟试题《C语言》期中考试试卷 (笔试)题号一二三四五六七八总分分数得分一、选择&#xff1a;(总分__40__分,每小题___2____分)1、C语言程序的基本单位是(?????)A、函数??????????B、过程????????????C、子程序??????????D…...

一个完整网站开发/汕头seo推广外包

每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试…...

本地化吃喝玩乐平台网站可以做吗/seo整站优化外包公司

技术特征&#xff1a;1.一种基于html5canvas画布音视频分段剪辑方法&#xff0c;其特征在于&#xff1a;包括如下步骤&#xff1a;步骤一&#xff1a;首先使用者预先获取源音视频文件&#xff0c;然后使用者对音视频文件分段剪辑时&#xff0c;进入音视频文件分段剪辑主单元&am…...

最好的wordpress主题/cfa一级看多久两分钟

使用pd.read_sas()会乱码或者报错&#xff0c;因此使用sas7bdat包来读取。 pip install sas7bdat然后使用下面语句即可&#xff1a; path r"......." df sas7bdat.SAS7BDAT(path,encodinggb2312).to_data_frame()我们下次再见&#xff0c;如果还有下次的话&#…...