脚本宝典收集整理的这篇文章主要介绍了

Proxy(代理器/拦截器)Reflect反射

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

Proxy(代理器/拦截器)Reflect反射

Reflect和Proxy一样 都是es6用来操作对象的 API

Proxy 代理操作

Proxy代理器
        var proxy = new Proxy({}, {
            get: function(target, property) {
            return 35;
            }
        });

        let obj = Object.create(proxy);
        obj.time // 35
        console.log(obj.time) 

Proxy()同样具有get、set方法

let obj={
            name:"小花",
            age:18,
            sex:"男"
        }

        var proxObj=new Proxy(obj,{
            set:function(target,key,value){
                if(value=="小花"){
                    target[key]=value;
                }
            },
            get:function(target,key){
                if(target[key]==undefined){
                    return "没有该属性"
                }else{
                    return target[key];
                }
            }  
        })
        proxObj.name="李小花";
        console.log(proxObj.name)

Reflect(反射)

//Reflect和Proxy一样 都是es6用来操作对象的 API
        let obj={
            name:"小花",
            age:18,
            sex:"女"
        }

        //Reflect.defineProperty(obj,"school",{value:"师徒教育"});
        Reflect.deleteProperty(obj,"age");
        console.log(Reflect.has(obj,"sex"));
        console.log(obj);
        var proxObj=new Proxy(obj,{
            set:function(target,key,value){
                if(value=="小花"){
                    Reflect.set(target,key,value);
                }
            },
            get:function(target,key){
                if(target[key]==undefined){
                    return "没有该属性"
                }else{
                    return  Reflect.get(target,key);
                }
            }  
        })
        proxObj.name="李小花";
        console.log(proxObj.name)

主要就是在执行函数之前Reflect代理一下完事在执行!

总结

以上是脚本宝典为你收集整理的

Proxy(代理器/拦截器)Reflect反射

全部内容,希望文章能够帮你解决

Proxy(代理器/拦截器)Reflect反射

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过