ES6 Proxy-Javascript 优雅的书写getter、setter

本文介绍了如何使用ES6的Proxy特性来优雅地处理对象的getter和setter,以此避免直接暴露私有属性。通过Proxy,可以创建一个代理对象,对原对象的属性读写操作进行拦截,实现更安全的数据访问控制。示例展示了如何通过handler对象的get和set方法,实现属性读取和修改的预处理,如设置权限检查。Proxy还允许在对象不存在的属性上进行赋值操作,扩展了JavaScript对象的功能。
摘要由CSDN通过智能技术生成

ES6 Proxy-Javascript 优雅的书写getter、setter

前言

emmmmm…大家都写过javabean吧,在做javaee开发的时候,经常拿javabean做数据模型,当数据模型比较复杂的时候,会有一大堆的getter,setter之类的东西,虽然有些IDE会自动帮助生成getter,setter,但是看起来确实很糟糕,kotlin改进了这种局面,如需创建数据模型只需用data关键字即可(扯远了)。

在js里也可以添加getter和setter,防止私有变量被暴露出来。在以前,我们可以利用立即执行函数进行暴露想暴露的数据。比如一个简单的例子:

let zhangsan = (() => {
  let name = "zhangsan"
  let age = 19

  return {
    setName:n => name = n,
    getName:() => {
    return name},
    setAge:a => age = a,
    getAge:() => {
    return age}
  }
})()

console.log(zhangsan.getName()); //zhangsan
console.log(zhangsan.name);//undefined
console.log(zhangsan.getAge()); //19
zhangsan.setName(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值