国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript設(shè)計(jì)模式學(xué)習(xí)筆記之代理模式

big_cat / 3300人閱讀

摘要:代理模式代理模式是為一個(gè)對(duì)象提供一個(gè)代用品或者占位符以便控制對(duì)它的訪問(wèn)引入代理模式,其實(shí)是為了實(shí)現(xiàn)單一職責(zé)的面向?qū)ο笤O(shè)計(jì)原則。

代理模式

代理模式是為一個(gè)對(duì)象提供一個(gè)代用品或者占位符, 以便控制對(duì)它的訪問(wèn)

引入代理模式,其實(shí)是為了實(shí)現(xiàn)單一職責(zé)的面向?qū)ο笤O(shè)計(jì)原則。

虛擬代理

將一些開(kāi)銷很大的對(duì)象, 延遲到正真需要的時(shí)候執(zhí)行

        // 針對(duì)大圖 增加loading圖
        // 創(chuàng)建 img
        var myImage = (function () {
            var imgNode = document.createElement("img");

            document.body.appendChild(imgNode);

            return {
                // 直接設(shè)置 img 的src
                setSrc: function (src) {
                    imgNode.src = src;
                }
            }
        })();

        // 代理對(duì)象
        var proxyImage = (function () {
            var img = new Image();
            img.onload = function () {
                // 在代理中等到圖片加載完在設(shè)置正真的圖片地址
                myImage.setSrc(this.src);
            };

            return {
                setSrc: function (src) {
                    myImage.setSrc("./loading.jpg");
                    img.src = src;
                }
            }
        })();

        proxyImage.setSrc("https://xxx.com/realImage.png")
緩存代理

可以為一些開(kāi)銷大的運(yùn)算結(jié)果提供暫時(shí)的存儲(chǔ)

    // 體現(xiàn)了 單一職責(zé)原則,
    // 原函數(shù)
    var multi = function () {
        var a = 1;
        for (var i = 0, l = arguments.length; i < l; i++) {
            a = a * arguments[i];
        }
        console.log(a);
        return a;
    }

    // 代理函數(shù)
    var proxyMulti = (function () {
        var cache = {};
        return function () {
            var args = Array.prototype.join.call(arguments, ",");
            if (args in cache) {
                return cache[args];
            }
            return cache[args] = multi.apply(this, arguments);
        }
    })();

    proxyMulti(1, 2, 3, 4, 5);
    proxyMulti(1, 2, 3, 4, 5);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109255.html

相關(guān)文章

  • javascript設(shè)計(jì)模式學(xué)習(xí)筆記單例模式

    摘要:?jiǎn)卫J絾卫J骄褪潜WC一個(gè)類僅有一個(gè)實(shí)例并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)其最大的特點(diǎn)就是永遠(yuǎn)只返回一個(gè)實(shí)例實(shí)例通過(guò)來(lái)獲取類的唯一對(duì)象其缺點(diǎn)也明顯增加了類的不透明性透明的單例模式最終會(huì)被返回使用代理實(shí)現(xiàn)單例模式將負(fù)責(zé)管理單例的邏輯移到了代理類中 單例模式 單例模式 就是保證一個(gè)類僅有一個(gè)實(shí)例, 并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn). 其最大的特點(diǎn)就是 永遠(yuǎn)只返回一個(gè)實(shí)例 var Sin...

    xiaolinbang 評(píng)論0 收藏0
  • JS代理模式JavaScript設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐》閱讀筆記

    摘要:保護(hù)代理和虛擬代理保護(hù)代理當(dāng)有許多需求要向某對(duì)象發(fā)出一些請(qǐng)求時(shí),可以設(shè)置保護(hù)代理,通過(guò)一些條件判斷對(duì)請(qǐng)求進(jìn)行過(guò)濾。虛擬代理在程序中可以能有一些代價(jià)昂貴的操作。而虛擬代理是最常用的一種代理模式。 代理模式 代理模式是為一個(gè)對(duì)象提供一個(gè)代用品或占位符,以便控制對(duì)它的訪問(wèn)。 保護(hù)代理和虛擬代理 保護(hù)代理:當(dāng)有許多需求要向某對(duì)象發(fā)出一些請(qǐng)求時(shí),可以設(shè)置保護(hù)代理,通過(guò)一些條件判斷對(duì)請(qǐng)求進(jìn)行過(guò)濾。...

    mist14 評(píng)論0 收藏0
  • 正則表達(dá)式

    摘要:最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。學(xué)習(xí)目標(biāo)了解正則表達(dá)式語(yǔ)法在中使用正則表達(dá)式在中使 JS高級(jí)技巧 本篇是看的《JS高級(jí)程序設(shè)計(jì)》第23章《高級(jí)技巧》做的讀書(shū)分享。本篇按照書(shū)里的思路根據(jù)自己的理解和經(jīng)驗(yàn),進(jìn)行擴(kuò)展延伸,同時(shí)指出書(shū)里的一些問(wèn)題。將會(huì)討論安全的類型檢測(cè)、惰性載入函數(shù)、凍結(jié)對(duì)象、定時(shí)器等話題。1. 安全的類型檢測(cè)...

    yibinnn 評(píng)論0 收藏0
  • javascript設(shè)計(jì)模式學(xué)習(xí)筆記命令模式

    摘要:命令模式指的是一個(gè)執(zhí)行某些特定事情的指令設(shè)計(jì)模式的主題總是把不變的事物和變化的事物分離開(kāi)來(lái)在中函數(shù)作為一等對(duì)象所以命令模式其實(shí)是回調(diào)函數(shù)的一個(gè)面向?qū)ο蟮奶娲吩O(shè)置命令命令集合刷新菜單界面命令觸發(fā)條件接受者綁定命令 命令模式 指的是一個(gè)執(zhí)行某些特定事情的指令 設(shè)計(jì)模式的主題: 總是把不變的事物和變化的事物分離開(kāi)來(lái) 在javascript 中, 函數(shù)作為一等對(duì)象, 所以, 命令模式其實(shí)是...

    MobService 評(píng)論0 收藏0
  • javascript設(shè)計(jì)模式學(xué)習(xí)筆記迭代器模式

    摘要:迭代器模式順序訪問(wèn)一個(gè)對(duì)象的對(duì)象的內(nèi)部可分為內(nèi)部迭代器和外部迭代器內(nèi)部迭代器就是常見(jiàn)的或者外部迭代器實(shí)現(xiàn)了簡(jiǎn)單實(shí)現(xiàn) 迭代器模式 順序訪問(wèn)一個(gè)對(duì)象的 對(duì)象的內(nèi)部 可分為內(nèi)部迭代器 和 外部迭代器 內(nèi)部迭代器 就是常見(jiàn)的 forEach(), 或者 $.each() function forEach(arr, callback) { var i = 0, len...

    Jason_Geng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<