脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。