美文网首页
ES6 6.Proxy和Reflect

ES6 6.Proxy和Reflect

作者: Coldhands | 来源:发表于2018-07-20 23:44 被阅读0次

Proxy

{
    let obj = {
        time: '2018-01-01',
        name: '玲珑',
        _r: 123
    }
    let monitor = new Proxy(obj,{
        //拦截对象属性的读取
        get(target,key){
            return target[key].replace('2018','2019');
        },
        //拦截对象属性
        set(target,key,value){
            if(key === 'name'){
                return target[key] = value;
            }else{
                return target[key];
            }
        },
        // 拦截delete
        deleteProperty(target,key){
            if(key.indexOf('_')>-1){
                delete target[key];
                return true;
            }else{
                return target[key];
            }
        },
        // 拦截    Object.keys,Object.getOwnPropertySymbols,Object.getOwnPropertyNames
        ownKeys(target){
            return Object.keys(target).filter(item=>item!='time')
        }
    })
    monitor.time = '2019';
    monitor.name = '安红豆';
    console.log(monitor.time);
    console.log(monitor);
    console.log('has','name' in monitor,'time' in monitor);

    // delete monitor.time;
    // console.log('delete',monitor);
    // delete monitor._r;
    // console.log('delete',monitor);
    console.log('ownKeys',Object.keys(monitor));
}
输出结果: proxy输出结果

Reflect

{
    let obj={
        time:'2017-03-11',
        name:'net',
        _r:123
    };

    console.log('Reflect get',Reflect.get(obj,'time'));
    Reflect.set(obj,'name','mukewang');
    console.log(obj);
    console.log('has',Reflect.has(obj,'name'));
}
输出结果: reflect输出结果

相关文章

  • ES6 6.Proxy和Reflect

    Proxy Reflect

  • 6.Proxy与Reflect

    很有意思的一章 Proxy get 利用Proxy,可以将读取属性的操作(get),转变为执行某个函数,从而实现属...

  • 使用Reflect和Proxy编写的值校验。

    可以使用Reflect和Proxy编写脱离值本身的校验,便于维护与重构。代码如下: ES6中新增的Reflect怎...

  • ES6——Reflect 与 Proxy

    ES6 之 Proxy 介绍深入实践 ES6 Proxy & Reflect 1.Proxy Proxy 可以对目...

  • ES6标准入门读书笔记12(Reflect)未完待续

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect 对象

    Reflect 对象与 Proxy 对象一样,也是 ES6 为了操作对象而提供的新的API。Reflect 对象的...

  • ts + reflect 编程, 实现 类 spring bo

    es6 提供了 reflect api, es7 的 提供有装饰器。 我们可以尝试用装饰器 + reflect 实...

  • ES6 Reflect

    一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象...

  • Reflect对象

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的...

网友评论

      本文标题:ES6 6.Proxy和Reflect

      本文链接:https://www.haomeiwen.com/subject/ovrcmftx.html