码迷,mamicode.com
首页 > 其他好文 > 详细

Proxy 基础用法

时间:2019-12-28 21:06:51      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:class   col   ==   proxy   电话   number   val   ror   like   

// Proxy 基础用法
const person = {
    name:‘laravist‘,
    age:2000
}
const personProxy = new Proxy(person,{
    get(target,key){
        return target[key].toUpperCase();
    },
    set(target,key,value){
        target[key] = value.trim();
    }
});
personProxy.name = ‘Leo‘;

 

// Proxy 格式化电话号码
const phonerHandler = {
    set(target,key,value){
        target[key] = value.match(/[0-9]/g).join(‘‘);
    },
    get(target,key){
        return target[key].replace(/(\d{3})(\d{4})(\d{4})/,‘$1-$2-$3‘)
    }
}
const phoneNumber = new Proxy({},phonerHandler);

 

 

// Proxy 排查是否有了类似的属性,如:id -- ID,则报错
const safeHandler = {
    set(target,key,value){
        console.log(‘223‘,target)
        const likeKey = Object.keys(target).find(k => k.toLowerCase() === key.toLowerCase());
        if(!(key in target) && likeKey){
            throw new Error(`safetyProxy有了类似的属性${key} --- ${likeKey}`)
        }else{
            console.log(111)
        }

        target[key] = value;
    }
}
const safetyProxy = new Proxy({ id : 2 }, safeHandler);
safetyProxy.ID = 6
console.log(safetyProxy)

 

……

Proxy 基础用法

标签:class   col   ==   proxy   电话   number   val   ror   like   

原文地址:https://www.cnblogs.com/jwzhang/p/12112828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!