一、写在前面
Proxy的意思是代理,我们可以把它理解为一个拦截器,就是当我们操作对象时,它都会对对象的操作进行拦截,从而进行监测和改写。
为什么要存在Proxy?
因为在ES6之前,我们使用Object.defineProperty()来设置监听器,来监听对象属性的获取和改写。但是如果其中存在其他的一些操作,我们是无法监测到的,所以为了解决这样一个问题,在ES6中增加了Proxy代理。Proxy可以帮助我们监听对象的十三中操作。
二、两者对比
Object.defineProperty

let info = {name: 'dmc',age: 20
}Object.defineProperty(info, 'name', {get() {console.log('获取info的name值')return 'dl'},set() {console.log('设置info的name值')}
})console.log(info.name)
info.name = 'dmc'

Proxy

let info = {name: 'dmc',age: 20
}let infoProxy = new Proxy(info, {get(target, key) {console.log('获取对象属性')return target[key]},set(target, key, newValue) {console.log('设置对象属性')target[key] = newValue},has(target, key) {console.log('触发has捕获器')}
})

三、Proxy其他捕获器类型
Proxy存在13种捕获器类型,常用的有has(), get(), set(), deleteProperty(),construt()和apply()主要用于函数

什么是 Proxy ?相关推荐

  1. ES6 Proxy 性能之我见

    ES6 Proxy 性能之我见 本文翻译自https://thecodebarbarian.com/thoughts-on-es6-proxies-performance Proxy是ES6的一个强力 ...

  2. ATS统计量proxy.node.client_throughput_out的单位调研

    proxy.node.client_throughput_out表示客户端字节吞吐量,那单位是什么呢? 我通过在SourceInsight中搜索ATS 5.3.1的源码,在traffic_shell. ...

  3. 设计模式之代理模式(Proxy Pattern)

    定义:为其他对象提供一种代理以控制这个对象的访问,也叫做委托模式. 咱们比作游戏,通俗讲代理模式就是,一个主题虚基类派生出两个子类,一个玩家类,实现相关操作,一个是代练类,代替执行玩家相关操作,代练类 ...

  4. MySQL 水平分区方案Spock Proxy

    Spock Proxy 是由实际项目产生的一个开源项目(Spock是Rails的应用,Speck Proxy应当可用于Rails之外的,例如PHP或.NET),基于MySQL Proxy开发,是MyS ...

  5. 使用MySQL Proxy解决MySQL主从同步延迟

    MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方 面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制是依赖Slave主动向Master发请求来获取数据的, ...

  6. mysql读写分离(MySQL Proxy 安装和使用)

    一.必备软件: 1.LUA    可以去LUA的官方下载:www.lua.org 2.MySQL Proxy    这里有好多二进制版本.     http://mysql.cdpa.nsysu.ed ...

  7. Proxy与NAT有什么区别

    在internet共享上网技术上,一般有两种方式,一种是proxy代理型,一种是NAT网关型,关于两者的区别与原理,身边很多人都不是很明白,下面我来讲讲我的理解,如有不对的,欢迎指正. 1.先说应用例 ...

  8. 设计模式之代理模式(Proxy)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. devServer proxy跨域 设置代理 proxy

    概念 什么是同源策略 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一 ...

  10. 用es6 (proxy 和 reflect)轻松实现 观察者模式

    js中 观察者 之前我们一般通过事件机制完成 ex: 注册监听 Event.listen('changeName', name => console.log(name)) 派发事件 Event. ...

最新文章

  1. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)
  2. 彻底解决Spring mvc中时间的转换和序列化等问题
  3. Quartus II11.0安装教程
  4. 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
  5. 规格选择_止水螺杆规格及选择
  6. The “note“ model is Samsung’s first
  7. 通过pip下载python包缓慢的解决方法
  8. win10传真服务器位置,win10系统电脑发传真的操作方法
  9. 怎么退出自适应巡航_定速巡航与自适应定速巡航到底有什么不同?
  10. Java工程师培训课(十七【新的领域】)
  11. 计算机学院认知实习报告
  12. 浅谈建筑能耗在线监测系统在天目西路街道103坊27丘项目泰禾大厦的应用—安科瑞 孙斌
  13. 站住!你会修改NPM全局模式的默认安装路径嘛?
  14. 使用计算机生成景物图像,使用计算机生成假想景物的图像,其主要步骤是______。...
  15. UCOSII软件定时器
  16. 微信小程序--》小程序简介与工具安装配置
  17. 无线网络原理知识总结
  18. 华为P30pro手机电路图
  19. 《Java程序设计》第15周课堂实践总结
  20. ‘conda‘不是内部或外部命令,也不是可运行的程序或批处理文件。

热门文章

  1. python列表遍历元组_Python 元组遍历排序操作方法
  2. 为什么只有涨价才能救小米?
  3. 广义相对论 的 一个问题
  4. 远期、期货和互换(一)
  5. android 高德路线,【Android呼叫高德路线规划】
  6. 语音验证码接口PYTHO语言
  7. 手机开热点,电脑连,关于两个局域网的问题
  8. 计算机分辨率无法调整,教你电脑分辨率调不过来怎么办
  9. mac升级python版本_Mac上python如何升级?
  10. 梨子的功效与作用_梨的9种不为人知的价值