ES学习笔记(15)--用Proxy进行预处理

钩子函数

在运行函数前初始化一些数据,在改变对象值后做一些善后处理。这些都算钩子函数,Proxy的存在就可以让我们给函数加上这样的钩子函数,你也可以理解为在执行方法前预处理一些代码。你可以简单的理解为他是函数或者对象的生命周期。

定义对象的方法

        var obj = {
            add:function(val){
                return val + 10;
            },
            name:"i am jie"
        }
        console.log(obj.add(100));
        console.log(obj.name)

声明Proxy

new Proxy({},{});

        var pro = new Proxy({
            add: function (val) {
                return val + 10;
            },
            name: "i am jie"
        },{
            get:function(target,key,property){
                console.log('come in get');
                return target[key]
            }
        })
        console.log(pro.name)

clipboard.png

get属性

  1. target:得到的目标值
  2. key:目标的key值,相当于对象的属性
  3. property:这个不太常用,

set属性

  1. target:目标值。
  2. key:目标的Key值。
  3. value:要改变的值。
  4. receiver:改变前的原始值。
        var pro = new Proxy({
            add: function (val) {
                return val + 10;
            },
            name: "i am jie"
        }, {
                get: function (target, key, property) {
                    console.log('come in get');
                    return target[key]
                },
                set:function(target,key,value,receiver){
                    console.log(`setting${key} = ${value}`);
                    return target[key] = value;
                }
            })
        console.log(pro.name);
        pro.name = "杰";
        console.log(pro.name)

clipboard.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值