es6的Reflect

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了es6的Reflect脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

es6的Reflect

Reflect对象与Proxy对象一样,也是ES6为了操作对象而提供的新API。Reflect对象的设计目的有这样几个。
(1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。
(2) 修改某些Object方法的返回结果,让其变得更合理。比如,Object.defineProperty(obj, name, desc)在无法定义属性时,会抛出一个错误,而Reflect.definePRoPErty(obj, name, desc)则会返回false
VAR obj = {
    name:"姜姜",
    age:23,
    sex:"女"
}

//Object.defineProperty(obj,"school",{value:"师徒教育"});
//定义属性;
Reflect.defineProperty(obj,"school",{value:"师徒教育"});
console.LOG(obj);

//让Object操作变为函数行为:
//delete obj.name;
Reflect.deleteProperty(obj,"name");
console.log(obj);
console.log(Reflect.has(obj,"age"));
//是否有没有这个属性,如果返回true,没有返回false;


//Reflect对象的方法与Proxy对象的方法一一对应:
var porxObj = new Proxy(obj,{
    set:function(traget,key,value){
        if(value == "筱妍"){
            Reflect.set(traget,key,value);
        }
        
    },
    get:function(traget,key){
        if(traget[key]==undefined){
            return "我没有该属性";
        }else{
            return Reflect.get(traget,key);
        }
        
    }
});
//注释:Reflect一样都是es6提供的用来操作对象API(接口,文档);

脚本宝典总结

以上是脚本宝典为你收集整理的es6的Reflect全部内容,希望文章能够帮你解决es6的Reflect所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。