es6的Proxy(代理)
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对象方法列表:
方法 描述
handler.apply() 拦截Proxy实例作为函数调用的操作。
handler.construct() 拦截Proxy实例作为构造函数调用的操作。
handler.defineProperty() 拦截Object.defineProperty操作。
handler.deleteProperty() 拦截delete删除属性操作。
handler.enumerate() 此方法将被废弃,不建议使用。
handler.get() 拦截属性的读取操作。
handler.getOwnPropertyDescriptor()拦截Object.getOwnPropertyDescriptor()操作。
handler.getPrototypeOf() 拦截获取原型对象操作。
handler.has() 拦截属性检索操作。
handler.isExtensible() 拦截Object.isExtensible()操作。
handler.ownKeys() 拦截Object.getOwnPropertyNames()操作。
handler.preventExtensions() 拦截Object.preventExtensions()操作。
handler.set() 拦截属性赋值操作。
handler.setPrototypeOf() 拦截Object.setPrototypeOf()操作。
Proxy.revocable() 创建一个可取消的Proxy实例。
es6的Proxy(代理)相关推荐
- ES6之Proxy代理
什么是Proxy代理 ES6 让开发者能进一步接近 JS 引擎的能力,这些能力原先只存在于内置对象上.语言通过代 理( proxy )暴露了在对象上的内部工作,代理是一种封装,能够拦截并改变 JS 引 ...
- 深入浅出JS—15 ES6中Proxy及Reflect的使用
在一些前端框架中,常常需要监听数据变化,页面进行响应.为了监听对象的变化,需要对对象的操作进行捕获.本文着重介绍ES6中Proxy代理对象的使用,以及涉及到的映射对象Reflect使用 1. Prox ...
- 第十二节:ES6 Proxy代理 和 去银行存款有什么关系?
ES:给开发者提供了一个新特性:Proxy,就是代理的意思.也就是我们这一节要介绍的知识点. 以前,ATM还没有那么流行的时候(暴露年纪),我们去银行存款或者取款的时候,需要在柜台前排队,等柜台工作人 ...
- 用es6 (proxy 和 reflect)轻松实现 观察者模式
js中 观察者 之前我们一般通过事件机制完成 ex: 注册监听 Event.listen('changeName', name => console.log(name)) 派发事件 Event. ...
- 【ES6】Proxy对象
[ES6]Proxy对象 一.Proxy的基本用法 二.Proxy示例的方法 1)get() 2)set() 3)apply() 查看更多ES6教学文章: 参考文献 引言:ES6规范里面新增了Prox ...
- 关于Vue 3.0 的改进 Proxy 代理实现数据驱动视图
Vue 3.0 中使用了 Proxy 对象代理进行拦截实现了数据绑定视图的驱动操作.弥补了vue2.0中的局限,比如属性删除增加监听.对数组基于下标的修改.长度变化等等. 参考一下网上流传的机制图 P ...
- ES6的Proxy对象
Proxy在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改. ES6原生提供了Proxy构造函数,用来生成Proxy实例.下面代码中p ...
- Proxy(代理,拦截器),Reflect(反射)
Proxy(代理,拦截器),Reflect(反射) Proxy: 代理: var duixaing = {"name":"小胖","age" ...
- Proxy代理的作用
Proxy代理的作用: Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程"(meta programming),即对编程语言进行编程. Pro ...
最新文章
- 现在的编译器还需要手动展开循环吗_一例 Go 编译器代码优化 bug 定位和修复解析...
- 很多女生都这么干!效果就是可以很快换电脑……
- deLPHI书籍名称
- linux如何停用xdmcp服务,如何禁用XDMCP服务
- 基于arm下的Linux控制,基于ARMuCLinux的网络控制系统设计与实现
- 二进制编译安装mysql_二进制编译安装mysql
- java replace 双引号到单引号
- python按键盘上哪个键运行_python按什么键运行
- springboot+mybatis 的org.mybatis.spring.MyBatisSystemException 解决方法
- Java基础篇:循环语句之while语句
- Java利用poi-tl实现富文本HTML转Word
- 树莓派 USB摄像头
- js return加分号_js分号的重要性
- 名编辑电子杂志大师教程 | 仿古书翻页
- 第一性原理常见问题与解答(三)
- ASP.NET教育管理系统源码【源码分享】
- Python编写一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
- LM393芯片功能及原理
- python中http协议编程_python网络编程、套接字、HTTP协议
- 基于S7-200 PLC和组态王温室大棚组态设计程序设计电气自动控制
热门文章
- Java修改全文数字,求大神帮我修改下java计算机代码,数字键只有0和8能用
- 12日疯人认证百度云_百度云智峰会12月17日召开,央视财经对话现场要做一场高端访谈...
- matlab中龙贝格积分,龙贝格积分-matlab通用程序
- c语言一个整数各位数字个数_C语言实现把字符串中的数字转换成整数
- vscode里好用的html插件_知乎口碑最好的六大PPT插件分享!用好插件,效率倍增...
- mysql hourminute_mysql日期函数(时间函数)
- python从date目录导入数据集_PyTorch加载自己的数据集实例详解
- python量化交易策略实例_Python进阶量化交易场外篇3——最大回撤评价策略风险...
- Cannot perform runtime binding on a null reference
- Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程