资讯专栏INFORMATION COLUMN

ES6 Reflect(反射) Proxy(代理。拦截器)

zzbo / 2534人阅读

摘要:反射一样都是用来操作对象的接口女师徒师徒师徒女师徒让的操作都变成函数行为女师徒代理。拦截器直接操作女女代理操作女赋值取值没有该属性女没有该属性

Reflect(反射) Reflect Proxy 一样都是 es6 用来操作对象的API(接口)
var obj={
    name:"shi",
    age:19,
    sex:"女"
}
//obj.school="师徒"
//Object.defineProperty(obj,"school",{value:"师徒"});
Reflect.defineProperty(obj,"school",{value:"师徒"});
console.log(obj);//Object {name: "shi", age: 19, sex: "女", school: "师徒"}
2.让object的操作都变成函数行为
//delete obj.age
console.log(obj);//Object {name: "shi", sex: "女", school: "师徒"}
Reflect.deleteProperty(obj,"age");

console.log("sex" in obj);//true
console.log(Reflect.has(obj,"sex"));//true
Proxy(代理。拦截器) 直接操作
    var obj={
    name:"shi",
    age:19,
    sex:"女"
}
obj.name="shishi";
console.log(obj.age);//19
console.log(obj);//Object {name: "shishi", age: 19, sex: "女"}*/
代理操作
var obj={
    name:"shi",
    age:19,
    sex:"女"
}
var proxObj=new Proxy(obj,{
    //赋值
    sex:function(target,key,value){
        if(value!="shi1shi"){
            target[key]=value;
            
        }
    },
    //取值
    get:function(targer,key){
        if(targer[key]==undefined){
            return "没有该属性"
        }
    }
});
proxObj.name="shishi";
console.log(proxObj);//{name: "shishi", age: 19, sex: "女"}
console.log(proxObj.legs);//没有该属性

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84126.html

相关文章

  • 《深入理解ES6》笔记——代理Proxy)和反射Reflection)API(12)

    摘要:方法与代理处理程序的方法相同。使用给目标函数传入指定的参数。当然,不用反射也可以读取的值。的例子我们可以理解成是拦截了方法,然后传入参数,将返回值赋值给,这样我们就能在需要读取这个返回值的时候调用。这种代理模式和的代理有异曲同工之妙。 反射 Reflect 当你见到一个新的API,不明白的时候,就在浏览器打印出来看看它的样子。 showImg(https://segmentfault....

    ZHAO_ 评论0 收藏0
  • 《深入理解ES6》笔记——代理Proxy)和反射Reflection)API(12)

    摘要:方法与代理处理程序的方法相同。使用给目标函数传入指定的参数。当然,不用反射也可以读取的值。的例子我们可以理解成是拦截了方法,然后传入参数,将返回值赋值给,这样我们就能在需要读取这个返回值的时候调用。这种代理模式和的代理有异曲同工之妙。 反射 Reflect 当你见到一个新的API,不明白的时候,就在浏览器打印出来看看它的样子。 showImg(https://segmentfault....

    shiina 评论0 收藏0
  • ES6】改变 JS 内置行为的代理反射

    摘要:通过对这些底层内置对象的代理陷阱和反射函数,让开发者能进一步接近引擎的能力。显然,与要求代理目标对象必须是一个函数,这两个代理陷阱在函数的执行方式上开启了很多的可能性,结合使用就可以完全控制任意的代理目标函数的行为。 代理(Proxy)可以拦截并改变 JS 引擎的底层操作,如数据读取、属性定义、函数构造等一系列操作。ES6 通过对这些底层内置对象的代理陷阱和反射函数,让开发者能进一步接...

    lushan 评论0 收藏0
  • Proxy(代理器/截器)Reflect反射

    摘要:代理器拦截器反射和一样都是用来操作对象的代理操作代理器同样具有方法小花男小花没有该属性李小花反射和一样都是用来操作对象的小花女师徒教育小花没有该属性李小花主要就是在执行函数之前代理一下完事在执行 Proxy(代理器/拦截器)Reflect反射 Reflect和Proxy一样 都是es6用来操作对象的 API Proxy 代理操作 Proxy代理器 var proxy =...

    Batkid 评论0 收藏0

发表评论

0条评论

zzbo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<