Proxy 对象进行预处理

Proxy 用于修改方法或对象的默认行为,简单理解为它是函数或对象的生命周期。
例如:在处理目标方法或对象前后做一些数据的初始化。

Proxy 对象的定义


new Proxy({ }, { });

第一个花括号:处理对象或方法主体。
第二个花括号:Proxy 代理处理区域。

代码实例:


var pro = new Proxy({
    add: function (val) {
        return val + 100;
    },
    name: 'Proxy 预处理代理'
}, {
    get: function (target, key, property) {
        console.log("get 方法是在得到某个对象属性值时预处理的方法。");
        console.log(target);
        console.log(key);
        console.log(property);
        return target[key];
    },
    set: function (target, key, value, receiver) {
        console.log("set 方法是要改变Proxy属性值时进行的预处理。");
        console.log(target);
        console.log(key);
        console.log(value);
        console.log(receiver);
        return target[key] = value;
    }
});
console.log(pro.name);
pro.name = '我喜欢学习ES6';
console.log(pro.name);

在这里插入图片描述

set(target, key, property) 方法
  • target:得到目标值
  • key:目标的key值,相当于对象的属性
  • property:
get(target, key, value, receiver) 方法
  • target:目标值
  • key:目标的key值
  • value:要改变的值
  • receiver:改变前的原始值

apply 使用

apply 的作用是调用内部的方法,


let target = function () {
    return '我喜欢学习Proxy预处理代理';
}
let handler = {
    apply(target, ctx, args) {
        console.log('do apply');
        return Reflect.apply(...arguments);
    }
}
var pro = new Proxy(target, handler);
console.log(pro());

Proxy 的知识点非常多,建议看阮一峰大神的ES6。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值