本文实例讲述了ES6中Proxy与Reflect实现重载(overload)的方法。分享给大家供大家参考,具体如下:

Proxy与Reflect实现重载(overload)
从语法角度讲JavaScript不支持重载。原因很简单,JS中函数可以传入任意类型、任意个数的参数,通通可以通过在函数内使用this.arguments获得。这样,就无法实现同名函数参数列表不同实现不同功能。当然,在实际使用过程中,可以人为去检测传入实参的个数及类型,来进行不同操作。但是,我认为这不能叫做重载。
ES6带来了Proxy和Reflect,配合使用可以实现重载。Proxy用于修改某些操作的默认行为,相当于对原始想进行的操作进行“包装”;Reflect对象的方法与Proxy对象的方法一一对应,这使得Proxy对象可以方便的调用对应的Reflect方法完成默认行为。我们可以这样使用它们:
function LogMessage( m ){
this.m = m;
}
var message = new LogMessage( 1 );
var overload = new Proxy(message , {
get: function(target, key, receiver){
console.log(`getting ${key}`);
return Reflect.get(target , key , receiver);
},
set: function(target, key, value, receiver){
console.log(`setting ${key}`);
return Reflect.set(target, key, value, receiver);
}
});
overload.m = 2; //setting m
var s = overload.m; //getting m
看到了没,是不是很有意思,新创建的Proxy对象overload可以完成目标对象message的操作,同时,可以通过在默认操作之前自定义一些其他操作。我认为,这更像Java里的重载。
那么Proxy与Reflect有哪些实例方法呢?
1.get()用于拦截某个属性的读取操作。
2.set()
用于拦截某个属性的赋值操作。
3.has()
可以隐藏某些属性,不被in操作符遍历到。
4.construct()
用于拦截new命令。
5.deleteProperty()
用于拦截delete操作。
6.defineProperty()
用于拦截Object.defineProperty操作。
7.enumerate()
用于拦截for...in循环。
8.getOwnPropertyDescriptor()
用于拦截Object.getOwnPropertyDescriptor操作。
9.isExtensible()
用于拦截Object.isExtensible操作。
10.preventExtensions()
用于拦截Object.preventExtensions操作。
11.setPrototypeOf()
用于拦截Object.setPrototypeOf操作。
上面很多方法不是很常用,如果感兴趣可以去查查相关资料
希望本文所述对大家ECMAScript程序设计有所帮助。
# ES6
# Proxy
# Reflect
# 重载
# overload
# 详解ES6中的代理模式——Proxy
# 实例解析ES6 Proxy使用场景介绍
# 详细探究ES6之Proxy代理
# ES6中Proxy代理用法实例浅析
# 浅谈es6语法 (Proxy和Reflect的对比)
# ES6之Proxy的get方法详解
# JavaScript中的ES6 Proxy的具体使用
# ES6 Proxy实现Vue的变化检测问题
# ES6知识点整理之Proxy的应用实例详解
# ES6 proxy和reflect的使用方法与应用实例分析
# ES6中javascript实现函数绑定及类的事件绑定功能详解
# ES6使用新特性Proxy实现的数据绑定功能实例
# 我认为
# 可以通过
# 遍历
# 不是很
# 感兴趣
# 我们可以
# 带来了
# 给大家
# 很简单
# 自定义
# 相关资料
# 可以实现
# 不被
# 所述
# 程序设计
# 很有意思
# 过程中
# 这更
# 角度讲
# 这不
相关文章:
如何零基础开发自助建站系统?完整教程解析
nginx修改上传文件大小限制的方法
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站org新手必看:2024最新搭建流程与模板选择技巧
如何通过VPS建站实现广告与增值服务盈利?
如何用5美元大硬盘VPS安全高效搭建个人网站?
建站之星如何快速解决建站难题?
北京网站制作公司哪家好一点,北京租房网站有哪些?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
广东企业建站网站优化与SEO营销核心策略指南
如何通过主机屋免费建站教程十分钟搭建网站?
建站主机选哪家性价比最高?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
建站主机与服务器功能差异如何区分?
制作表格网站有哪些,线上表格怎么弄?
网站专业制作公司有哪些,做一个公司网站要多少钱?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何用AWS免费套餐快速搭建高效网站?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何在云指建站中生成FTP站点?
如何续费美橙建站之星域名及服务?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
建站主机核心功能解析:服务器选择与网站搭建流程指南
如何高效配置香港服务器实现快速建站?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何通过多用户协作模板快速搭建高效企业网站?
如何在云主机快速搭建网站站点?
公司网站设计制作厂家,怎么创建自己的一个网站?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
成都网站制作报价公司,成都工业用气开户费用?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
建站之星如何快速生成多端适配网站?
如何用好域名打造高点击率的自主建站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
独立制作一个网站多少钱,建立网站需要花多少钱?
代刷网站制作软件,别人代刷火车票靠谱吗?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
如何构建满足综合性能需求的优质建站方案?
如何快速辨别茅台真假?关键步骤解析
建站之星后台密码遗忘?如何快速找回?
如何在宝塔面板创建新站点?
如何快速搭建高效香港服务器网站?
如何在橙子建站上传落地页?操作指南详解
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
*请认真填写需求信息,我们会在24小时内与您取得联系。