快来围观一下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 // 江苏省-南京市 通过这种方式我们就可以实现虚拟属性了,因为它不会被遍历出来...