美文网首页
Proxy、Reflect

Proxy、Reflect

作者: 天字一等 | 来源:发表于2019-05-28 11:53 被阅读0次

这篇写proxy、reflect的文章写的好:https://www.zhihu.com/search?type=content&q=proxy%20reflect
https://segmentfault.com/a/1190000015009255

https://segmentfault.com/a/1190000015009255
简单定义:可以用来定义对象各种基本操作的自定义行为 ,可以理解为对对象或者函数的代理操作。
注意:要对proxy实例进行操作,而不是对目标对象target进行操作,handler参数也是一个对象,用来定制拦截行为。proxy应用:https://segmentfault.com/a/1190000015009255
proxy代理:https://es6.ruanyifeng.com/#docs/proxy 语法:var proxy = new Proxy(target,handler); 例子:let person = new Proxy({},validator);person.age = 10;set和get中的obj、prop、value分别对应{}、age、10

let obj = { id: 0, name: 'Wmaker' };
        let objProxy = new Proxy(obj, {
            get(target, attr) {
                console.log(`Get ${attr}`);
                return target[attr];
            },
            set(target, attr, val) {
                console.log(`Set ${attr}`);
                target[attr] = val;
                return true;
            }
        });
        objProxy.id = 2; //
        objProxy.name; // 打印出:Get name,没有出发set,相当:obj.name;
        objProxy.name = "ss"; // 打印出:Set name,没有出发get,相当:obj.name;
        console.log(obj.id)  //2
        console.log(objProxy)  //Proxy{id:2,name:'ss'}
        console.log(objProxy.id)  //2

相关文章

网友评论

      本文标题:Proxy、Reflect

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