es6--proxy

proxy,暂时理解还不是很清晰,可以暂时理解为生命周期的钩子函数,在触发某种操作的时候预先执行

声明Proxy

new Proxy({},{});//里面带有两个参数,第一个是执行的方法体,第二个是Proxy处理的区域,也就是我们去写钩子函数的地方

下面的例子的变量应该是proxy啊,尴尬!!!不过不影响最后的结果 !!!

基本demo:

let promise = new Proxy(
    {name:'cyany'},
    {
    get:(target,key)=>{
        if(key in target){
            console.log('do get method normal');
            return target[key]
        }else{
            console.log('not the property');
         }
    }
   }    
);

promise.name

promise.height

1202026-20180702142917111-424659554.png


分析上面结构:
Proxy的里面有一个get属性,该属性是一个匿名方法,可以接受两个属性,第一个是target,第二个是key,相当于是对象的属性
in,可以判断该属性是否存在于该目标中,返回Boolean

get:(target,key)=>{
        if(key in target){
            console.log('do get method normal');
            return target[key]
        }else{
            console.log('not the property');
         }

还有一个set,属性,也是一个匿名函数,接受四个参数,target目标值,key属性,value值,oldValue之前的值

let promise1 = new Proxy({
    name:'bluesky'
},{
    get:(target,key)=>{
        console.log('come in the get method');
        return target[key];
   },
    set:(target,key,value,oldValue)=>{
        console.log('come in the set method');
        console.log(target,key,value,oldValue);
        return target[key]=value;
   }
});

promise1.set('height',186)

1202026-20180702144530958-1308980962.png

转载于:https://www.cnblogs.com/cyany/p/9253771.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值