20.Proxy

Proxy

通過 Proxy 你可以改寫對象的一些默認的方法,定義自己的邏輯。有一種保護,預(yù)處理的感覺

const person = { name: 'Dp', age: 2000 };
// `Proxy` 接收兩個參數(shù),第一個參數(shù)為要代理的目標對象,第二個參數(shù)是一個對象,包含我們要修改的方法
const personProxy = new Proxy(person, {
    // 改變獲取值的方式
    get(target, key) {
        return target[key].toLowerCase();
    },
    // 改變設(shè)置值的方式
    set(target, key, value) {
        target[key] = value.toUpperCase();
    }
});

// 存取電話號碼示例

const phoneHandler = {
    set(target, key, value) {
        target[key] = value.match(/\d/g).join('');
    },
    get(target, key) {
        return target[key].replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');
    }
}
const phoneProxy = new Proxy({}, phoneHandler);

打印結(jié)果

phoneProxy.home = '1350 8690 910'
"1350 8690 910"
phoneProxy.work = '18871233098'
"18871233098"
phoneProxy
Proxy {home: "13508690910", work: "18871233098"}
phoneProxy.home
"135-0869-0910"
phoneProxy.work
"188-7123-3098"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,297評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,716評論 25 709
  • 洞仙歌·深庭夜寂 文/李智彬 深庭夜寂,風(fēng)吹花容瘦。寒月疏桐露華透。 望中秋、把酒共聚團圓,而今夜、人未寢孤枕守。...
    李智彬閱讀 578評論 0 3
  • 2016年一月開通了簡書,2017年一月發(fā)布了第一段隨想,然后就是到了如今的九月。簡書這個app我都是有空的時候開...
    SharonSue閱讀 197評論 0 0

友情鏈接更多精彩內(nèi)容