关于ES6里的proxy()

  • Post author:
  • Post category:其他




proxy()


作用

: 进行预处理,也可以说是在修改某些默认的行为,并且做出一层拦截,所有的访问都必须通过这层拦截,因此出了一种机制,可以对外界的访问进行修改

他有两个参数,参数1 :被处理的对象 参数2: 处理的{}的方法


例子:

var b = new Proxy(obj,{
			set(){
			},
			get(){
			}
		})
				



set()方法:


作用

:可以做过滤

他有三个参数: 参数1 原对象 var =obj{‘name’:“zhangsan”,age:18,img:‘1.png’};

参数2 调用的属性名 age; 参数3 你传入的属性值 19


例子:

var obj = {'name':"zhangsan",age:18,img:'1.png'};
        var b = new Proxy(obj,{
            set(target,key,value){
                // console.log(target[key]);
                var a = target[key].substring(0,1)
                if(value == a){
                    console.log('ok思密达')
                }else{
                    console.log('get out')
                } 
            })
b.age = 18 //当你调用里面的属性并且赋值的时候,会自动调用set方法



get()方法:


作用

: 当你访问里面的属性是出自动调用此方法;

他有两个参数:参数1 原对象 参数2 访问的属性名


例子

:

bb = new Proxy(test, {  
                get(target, key) {
                    // target[key] = target[key]+"哈哈"
                    for(let i in target){
                        target[i] = target[i]+"嘿嘿嘿"
                    }
                    return target        
            }
        });
        bb.oo
        console.log(bb)


总结

: proxy()就是代理,在外界进行为访问时做出一层拦截,他有两个参数,参数一是原对象,参数二是方法 ,他里面有两个方法分别是set()和get()方法



版权声明:本文为starry__sty原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。