博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6的Proxy(代理)
阅读量:5990 次
发布时间:2019-06-20

本文共 1488 字,大约阅读时间需要 4 分钟。

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实例。

转载地址:http://ovnlx.baihongyu.com/

你可能感兴趣的文章
linux下Jmeter运行
查看>>
团队开发冲刺第一阶段_2
查看>>
C# 使用Shell32 进行压缩与解压缩的标准且正确做法
查看>>
几种分布式存储系统的分析【转】
查看>>
【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】
查看>>
手动跟踪函数的调用过程【转】
查看>>
【转】:Synchronized同步静态方法和非静态方法总结
查看>>
在js中获取页面元素的属性值时,弱类型导致的诡异事件踩坑记录,
查看>>
java修饰符public\protected\default\private
查看>>
JS 正则表达式 exec 和 match
查看>>
PHP如何实现页面静态化
查看>>
.NET Remoting 体系结构 之 信道的功能和配置 (一)
查看>>
关于冷备份与热备份的对比
查看>>
CMB面试
查看>>
查看centos内存命令
查看>>
web开发学习的网站
查看>>
获取查询数据
查看>>
python字符串大小写转换
查看>>
java基础(4)-数组(1)
查看>>
C#学习笔记:linq和xml
查看>>