站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        es6代理模式是什么

        es6代理模式是一種設(shè)計(jì)模式,指的是一個(gè)類(lèi)別可以作為其他東西的接口,具體的表現(xiàn)形式就是es6中新增的Proxy對(duì)象;Proxy對(duì)象用于定義基本操作的自定義行為,語(yǔ)法為“l(fā)et p=new Proxy(target,handler);”。

        es6代理模式是什么

        本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。

        es6代理模式是什么

        代理模式(英語(yǔ):Proxy Pattern)是程序設(shè)計(jì)中的一種設(shè)計(jì)模式。

        所謂的代理者是指一個(gè)類(lèi)別可以作為其它東西的接口。代理者可以作任何東西的接口:網(wǎng)絡(luò)連接、內(nèi)存中的大對(duì)象、文件或其它昂貴或無(wú)法復(fù)制的資源。

        而在JavaScript中代理模式的具體表現(xiàn)形式就是ES6中的新增對(duì)象—Proxy

        Proxy 的解釋是:

        Proxy對(duì)象用于定義基本操作的自定義行為(如屬性查找,賦值,枚舉,函數(shù)調(diào)用等)。

        簡(jiǎn)單來(lái)說(shuō): Proxy 對(duì)象就是可以讓你去對(duì)JavaScript中的一切合法對(duì)象的基本操作進(jìn)行自定義.然后用你自定義的操作去覆蓋其對(duì)象的基本操作.也就是當(dāng)一個(gè)對(duì)象去執(zhí)行一個(gè)基本操作時(shí),其執(zhí)行的過(guò)程和結(jié)果是你自定義的,而不是對(duì)象的.

        :sweat:好吧,用文字表達(dá)可能太復(fù)雜了.我們還是直接上代碼吧.

        Proxy的語(yǔ)法是:

        let p = new Proxy(target, handler);
        • target 是你要代理的對(duì)象.它可以是JavaScript中的任何合法對(duì)象.如: (數(shù)組, 對(duì)象, 函數(shù)等等)

        • handler 是你要自定義操作方法的一個(gè)集合.

        • p 是一個(gè)被代理后的新對(duì)象,它擁有 target 的一切屬性和方法.只不過(guò)其行為和結(jié)果是在 handler 中自定義的.

        然后讓我們來(lái)看這段代碼:

        let obj = {  a: 1,  b: 2, }   const p = new Proxy(obj, {  get(target, key, value) {   if (key === 'c') {    return '我是自定義的一個(gè)結(jié)果';   } else {    return target[key];   }  },    set(target, key, value) {   if (value === 4) {    target[key] = '我是自定義的一個(gè)結(jié)果';   } else {    target[key] = value;   }  } }) console.log(obj.a) // 1 console.log(obj.c) // undefined console.log(p.a) // 1 console.log(p.c) // 我是自定義的一個(gè)結(jié)果 obj.name = '李白'; console.log(obj.name); // 李白 obj.age = 4; console.log(obj.age); // 4 p.name = '李白'; console.log(p.name); // 李白 p.age = 4; console.log(p.age); // 我是自定義的一個(gè)結(jié)果

        從上面這段代碼中,我可以很清楚的看到 Proxy 對(duì)象的作用.即是之前所受的 用于定義基本操作的自定義行為 .同樣的 get 和 set 操作.沒(méi)有沒(méi)代理的對(duì)象所得的結(jié)果是其JavaScript本身的執(zhí)行機(jī)制運(yùn)行計(jì)算后所得到的.而被代理了的對(duì)象的結(jié)果則是我們自定義的.

        Proxy的兼容性如下:

        es6代理模式是什么

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚洲精品国偷自产在线| 久热这里只有精品视频6| 亚洲精品国产品国语在线| 久久成人精品视频| 亚洲国产精品无码久久| 国产成人精品久久亚洲高清不卡 | 久久成人国产精品| 欧美精品整片300页| 国产精品99久久不卡| 久久99精品国产99久久6男男| 久久精品99久久香蕉国产色戒| 久久久久亚洲精品中文字幕| 欧美精品天天操| 91在线视频精品| 久久国产热精品波多野结衣AV| 亚洲AV无码成人精品区狼人影院| 国内精品99亚洲免费高清| 亚洲欧洲国产日韩精品| 国产成人精品天堂| 精品久久久久久国产潘金莲| 少妇人妻偷人精品免费视频| 亚洲人午夜射精精品日韩| 日本加勒比久久精品| 久久人搡人人玩人妻精品首页| 国产精品嫩草影院一二三区| 无码精品一区二区三区免费视频 | 亚洲av无码成人精品区| 九九热这里只有国产精品| 精品日韩欧美国产| 久久久久人妻精品一区三寸蜜桃 | 麻豆精品不卡国产免费看| 国产91久久精品一区二区| 国产成人精品精品欧美| 国产精品你懂的| 国产精品青草久久久久婷婷| 99久久婷婷免费国产综合精品 | 国产精品禁18久久久夂久| 潮喷大喷水系列无码久久精品| WWW国产精品内射老师| 国产亚洲欧洲精品| 久久r热这里有精品视频|