es6的Proxy(代理)

Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作。一下子让我们对一个对象有了很强的追踪能力,同时在数据绑定方面也很有用处
//代理:
var duixaing = {"name":"姜姜","age":23,"sex":"女"
}
duixaing.name="筱妍";
console.log(duixaing.name);//打印:筱妍。
console.log(duixaing);//打印:Object {name: "姜姜", age: 23, sex: "女"}。var obj = {"name":"妍妍","age":23,"sex":"女"
}//拦截:
var porxObj = new Proxy(obj,{set:function(traget,key,value){if(value == "姜姜"){traget[key]=value;}},get:function(traget,key){if(traget[key]==undefined){return "我没有该属性";}else{return traget[key];}}
});
porxObj.name="大妍妍";
console.log(obj);//打印:Object {name: "姜姜", age: 23, sex: "女"}。
console.log(porxObj.xh);//打印:我没有该属性。
console.log(porxObj.name);//打印:大妍妍。
//注释:Proxy要传两个值,第一个值是要代理的对象,第二个值是要做哪些操作;

Proxy对象方法列表:
方法 描述

  1. handler.apply() 拦截Proxy实例作为函数调用的操作。

  2. handler.construct() 拦截Proxy实例作为构造函数调用的操作。

  3. handler.defineProperty() 拦截Object.defineProperty操作。

  4. handler.deleteProperty() 拦截delete删除属性操作。

  5. handler.enumerate() 此方法将被废弃,不建议使用。

  6. handler.get() 拦截属性的读取操作。

  7. handler.getOwnPropertyDescriptor()拦截Object.getOwnPropertyDescriptor()操作。

  8. handler.getPrototypeOf() 拦截获取原型对象操作。

  9. handler.has() 拦截属性检索操作。

  10. handler.isExtensible() 拦截Object.isExtensible()操作。

  11. handler.ownKeys() 拦截Object.getOwnPropertyNames()操作。

  12. handler.preventExtensions() 拦截Object.preventExtensions()操作。

  13. handler.set() 拦截属性赋值操作。

  14. handler.setPrototypeOf() 拦截Object.setPrototypeOf()操作。
    Proxy.revocable() 创建一个可取消的Proxy实例。

es6的Proxy(代理)相关推荐

  1. ES6之Proxy代理

    什么是Proxy代理 ES6 让开发者能进一步接近 JS 引擎的能力,这些能力原先只存在于内置对象上.语言通过代 理( proxy )暴露了在对象上的内部工作,代理是一种封装,能够拦截并改变 JS 引 ...

  2. 深入浅出JS—15 ES6中Proxy及Reflect的使用

    在一些前端框架中,常常需要监听数据变化,页面进行响应.为了监听对象的变化,需要对对象的操作进行捕获.本文着重介绍ES6中Proxy代理对象的使用,以及涉及到的映射对象Reflect使用 1. Prox ...

  3. 第十二节:ES6 Proxy代理 和 去银行存款有什么关系?

    ES:给开发者提供了一个新特性:Proxy,就是代理的意思.也就是我们这一节要介绍的知识点. 以前,ATM还没有那么流行的时候(暴露年纪),我们去银行存款或者取款的时候,需要在柜台前排队,等柜台工作人 ...

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

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

  5. 【ES6】Proxy对象

    [ES6]Proxy对象 一.Proxy的基本用法 二.Proxy示例的方法 1)get() 2)set() 3)apply() 查看更多ES6教学文章: 参考文献 引言:ES6规范里面新增了Prox ...

  6. 关于Vue 3.0 的改进 Proxy 代理实现数据驱动视图

    Vue 3.0 中使用了 Proxy 对象代理进行拦截实现了数据绑定视图的驱动操作.弥补了vue2.0中的局限,比如属性删除增加监听.对数组基于下标的修改.长度变化等等. 参考一下网上流传的机制图 P ...

  7. ES6的Proxy对象

    Proxy在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改. ES6原生提供了Proxy构造函数,用来生成Proxy实例.下面代码中p ...

  8. Proxy(代理,拦截器),Reflect(反射)

    Proxy(代理,拦截器),Reflect(反射) Proxy: 代理: var duixaing = {"name":"小胖","age" ...

  9. Proxy代理的作用

    Proxy代理的作用: Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程"(meta programming),即对编程语言进行编程. Pro ...

最新文章

  1. 现在的编译器还需要手动展开循环吗_一例 Go 编译器代码优化 bug 定位和修复解析...
  2. 很多女生都这么干!效果就是可以很快换电脑……
  3. deLPHI书籍名称
  4. linux如何停用xdmcp服务,如何禁用XDMCP服务
  5. 基于arm下的Linux控制,基于ARMuCLinux的网络控制系统设计与实现
  6. 二进制编译安装mysql_二进制编译安装mysql
  7. java replace 双引号到单引号
  8. python按键盘上哪个键运行_python按什么键运行
  9. springboot+mybatis 的org.mybatis.spring.MyBatisSystemException 解决方法
  10. Java基础篇:循环语句之while语句
  11. Java利用poi-tl实现富文本HTML转Word
  12. 树莓派 USB摄像头
  13. js return加分号_js分号的重要性
  14. 名编辑电子杂志大师教程 | 仿古书翻页
  15. 第一性原理常见问题与解答(三)
  16. ASP.NET教育管理系统源码【源码分享】
  17. Python编写一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  18. LM393芯片功能及原理
  19. python中http协议编程_python网络编程、套接字、HTTP协议
  20. 基于S7-200 PLC和组态王温室大棚组态设计程序设计电气自动控制

热门文章

  1. Java修改全文数字,求大神帮我修改下java计算机代码,数字键只有0和8能用
  2. 12日疯人认证百度云_百度云智峰会12月17日召开,央视财经对话现场要做一场高端访谈...
  3. matlab中龙贝格积分,龙贝格积分-matlab通用程序
  4. c语言一个整数各位数字个数_C语言实现把字符串中的数字转换成整数
  5. vscode里好用的html插件_知乎口碑最好的六大PPT插件分享!用好插件,效率倍增...
  6. mysql hourminute_mysql日期函数(时间函数)
  7. python从date目录导入数据集_PyTorch加载自己的数据集实例详解
  8. python量化交易策略实例_Python进阶量化交易场外篇3——最大回撤评价策略风险...
  9. Cannot perform runtime binding on a null reference
  10. Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程