快来围观一下JavaScript的Proxy
【快来围观一下JavaScript的Proxy】的确写Proxy文章很多,那么今天我也不凑字数了,炒两个栗子吧。
一、虚拟属性
const person = {
name: 'xiaoyun',
province: '江苏省',
city: '南京市'
}
对于上述对象,我们可能需要地址信息(由省市拼接而成),在此之前我们可能会采取下列方式:
直接在person对象上声明一个address属性;
当用到address信息时,再通过person拼接。
第一个方法的主要弊端是污染了原有的对象,而第二种方法就很不灵活。现在我们可以通过Proxy实现比较好的效果:
const enhancePerson = new Proxy(person, {
get (target, name) {
switch (name) {
case 'address':
return `${target['province']}-${target['city']}`
default:
return target[name]
}
}
})
enhancePerson.address // 江苏省-南京市
通过这种方式我们就可以实现虚拟属性了,因为它不会被遍历出来:
Object.keys(enhancePerson) // [ 'name', 'province', 'city' ]
这里还有一个我觉得比较容易忽略的点:
>>>阅读全文
推荐阅读
- 皮一下
- 深入浅出谈一下有关分布式消息技术(Kafka)
- To|To 2018
- 大家来欣赏一下能吸引“仙人”的传统美食“镇江肴肉”
- 受了气
- 练习钢笔字335弹——积,欢迎围观参与|练习钢笔字335弹——积,欢迎围观参与|硬笔书法练习
- 盘点一下过年最不想见到的人
- 猪八戒打死玉面狐狸后,为何要掀开裙底看一下(八戒才是最明智的)
- 每日一扔的感受
- 沙漠景区旅游旺季,上了热搜,快来玩