【ES6】拦截器 Proxy

来源:互联网 发布:centos更新命令 编辑:程序博客网 时间:2024/05/21 09:40

前言:

前段时间在整理有关于ES6的文档,一边学习,一边总结。大致列出的一个提纲,自己对ES6的理解,仅供大家参考学习。


Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。

(()=>{    const log = console.log;    var proxy = new Proxy({}, {        get(target, key, receiver) {            return `<span data-key='${key}'>${target[key]}</span>`;        },        set(target, key, value,receiver){            return Reflect.set(target, key, `TEST-${value}`,receiver);        }    });    proxy.name = 'profile';    proxy.time = '2017/9/9';    proxy.action = 'download';    log(proxy.time);    //<span data-key='time'>TEST-2017/9/9</span>    log(proxy.name);    //<span data-key='name'>TEST-profile</span>    log(proxy.action);  //<span data-key='action'>TEST-download</span>})();

new Proxy(obj,handler)

参数obj:对象,{}或者[ ]
参数handler:处理器对象,可选处理方法get、set、apply、has…


声明:参考自自阮一峰老师《ES6入门》,有兴趣的可以去看下,url:http://es6.ruanyifeng.com/

备注:时间关系,关于ES6的更新不会很快。如有需要完整文档的,可以留下邮箱,单独发送>_<

原创粉丝点击