ES6:关于Proxy,你知道多少?

本文详细介绍了ES6中的Proxy,它可以在目标对象前设置拦截层,用于修改默认行为。通过get、set、apply等方法,我们可以实现属性读取检查、数据验证、函数调用控制等功能,实现元编程。Proxy提供了诸如has、deleteProperty、ownKeys等一系列方法,允许对对象的多种操作进行拦截和自定义处理。
摘要由CSDN通过智能技术生成

ES6:关于Proxy,你知道多少?

概述

  • Proxy用于修改某些操作的默认行为,等同于在语言层面上做出修改,所以属于一种“元编程”,即对编程语言进行编程。
  • Proxy可以理解成在目标对象前架设一层拦截层,外界访问该对象都必须先通过这层拦截,因此提供一种机制可以对外界的访问进行拦截或过滤。

实例的方法

1.get()

  • get方法用于拦截某个属性的读取操作。
let person = {
   
    name : '张三'
}

let proxy = new Proxy(person,{
   
    get : function(target,property){
   
        if(property in target){
   
            return target[property];
        }else{
   
            throw new Error('property ' + property + ' no found!')
        }
    }
})

proxy.name;		//'张三'
proxy.age;		//property age no found!

以上的实例当获取对象没有的属性age时,就会抛出错误;若不通过代理,则会返回undefined;

  • get方法可以继承
let proto = new Proxy({
   },{
   
    get(target,propertykey,receiver){
   
        console.log('get '+ propertykey);
        return target[propertykey];
    }
});

let obj = Object
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值