这篇文章主要介绍“es6中Proxy与Reflect怎么实现重载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6中Proxy与Reflect怎么实现重载”文章能帮助大家解决问题。Proxy与Re
这篇文章主要介绍“es6中Proxy与Reflect怎么实现重载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6中Proxy与Reflect怎么实现重载”文章能帮助大家解决问题。
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 mvar s = overload.m; //getting m
关于“ES6中Proxy与Reflect怎么实现重载”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: ES6中Proxy与Reflect怎么实现重载
本文链接: https://www.lsjlt.com/news/288157.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-22
2024-05-22
2024-05-22
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0