• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

joer717

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

代理

{
    //创建一个供应商的属性
    let obj ={
        time:'2017-03-11',
        name:'net',
        _r:123
    }
    let monitor = new Proxy(obj,{
        //拦截对象属性的读取
        get(target,key){
            return target[key].replace('2017','2020')
        },
        set(target,key,val){
            if(key === 'name'){
                return target[key] = val
            }else{
                return target[key]
            }
        },
        has(target,key){
            if(key === name){
                return target[key]
            }else{
                return false
            }
        },
        deleteProperty(target,key){
            if(key.indexOf('_')> -1){
                delete  target[key]
                return true
            }else{
                return target[key]
            }
        }
    })
    //读取属性
    //console.log('get',monitor.time)
    //console.log('set',monitor.time,'2019')
    monitor.time = 2019
    monitor.name = 'java'
    // console.log(monitor.name)
    // console.log('has','name' in monitor, 'time' in monitor)
    // console.log(monitor.time)
     delete monitor.time
    console.log(monitor)
    delete monitor._r
    console.log(monitor)
}

  

posted on 2019-09-04 11:07  joer717  阅读(126)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3