Proxy代理对对象的处理

l

let obj = {
    name:'kane',
    age:30
}
let objProxy = new Proxy(obj,{
    set(target,key,value){
        if(key=='age' && typeof value!='number'){
            throw new Error (`该键${key}的值${value}类型不正确`);
        }
        return target[key] = value
    }
    get(target,key,value){
        return target[key];    
    }
})

objProxy.age="28"

Proxy是个全局对象

Proxy(target,handler)是一个构造函数,target是被处理的对象,handler是对改对象处理的操作,最终返回一个代理对象。

get是读取,set是操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代理对象是一种特殊类型的对象,它可以用来控制对另一个对象的访问。当我们使用代理对象时,我们可以在访问另一个对象之前或之后执行一些自定义代码。这使得代理对象非常适用于实现缓存、权限控制和日志记录等功能。 要将代理对象换为普通对象,我们可以使用一些技巧和设计模式。以下是一种常见的方法: 1. 创建一个代理类:首先,我们需要创建一个代理类,继承自目标对象的类并实现相同的接口。代理类将负责将调用传递给目标对象,并可以在调用前后执行一些附加操作。 2. 维护目标对象的引用:在代理类中,我们需要维护一个目标对象的引用,以便在需要时将调用传递给它。可以在代理类的构造函数中传入目标对象或使用依赖注入等方式获取目标对象。 3. 实现接口方法:代理类需要实现目标对象所实现的接口方法。在这些方法内部,我们可以选择在调用目标对象之前或之后执行自定义代码。可以在这些方法中处理缓存逻辑、权限验证和日志记录等操作。 4. 创建代理对象:最后,我们可以实例化代理类,并将其当作普通对象使用。可以通过调用代理对象的方法来间接调用目标对象。 通过以上步骤,我们成功地将代理对象换为普通对象。现在,我们可以在不需要代理功能的情况下使用该对象,并享受纯粹的对象行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值