Heim  >  Artikel  >  Web-Frontend  >  Was ist das Prinzip des JavaScript-Proxy-Modus?

Was ist das Prinzip des JavaScript-Proxy-Modus?

WBOY
WBOYOriginal
2022-03-10 15:15:282228Durchsuche

In JavaScript besteht das Prinzip des Proxy-Musters darin, einen Ersatz oder Besatzer für ein Objekt bereitzustellen, um den Zugriff darauf zu steuern, indem ein Proxy für ein Objekt bereitgestellt wird, und das Proxy-Objekt steuert den Verweis auf das ursprüngliche Objekt ist ein Objektstrukturmuster.

Was ist das Prinzip des JavaScript-Proxy-Modus?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Was ist das Prinzip des Proxy-Modus in Javascript?

Ein Proxy ist ein Objekt (Proxy), das zur Steuerung des Zugriffs auf das Zielobjekt verwendet wird. Zu diesem Zweck muss es zunächst die gleiche Schnittstelle wie das Zielobjekt haben, unterscheidet sich jedoch vom Dekoratormuster dadurch, dass es keine Änderungen am Zielobjekt vornimmt. Sein Zweck besteht darin, die Initialisierungszeit „komplexer“ Objekte zu verzögern . Auf diese Weise können Sie das Zielobjekt initialisieren, wenn es verwendet wird (besonders wichtig für Singletons).

Stellen Sie einen Ersatz oder Platzhalter für ein Objekt bereit, um den Zugriff darauf zu steuern.

Stellen Sie einen Proxy für ein Objekt bereit. Das Proxy-Objekt steuert den Verweis auf das Originalobjekt. Das Proxy-Muster ist ein Objektstrukturmuster

Es gibt zwei Kategorien von Proxy-Mustern:

(1) Gewöhnlicher Proxy

(2) Lazy-Proxy

Schauen Sie sich einen Code an:

function getSomething(value) {
    if (value > 10) {
        return value * 2;
    }
}

Hier definieren wir eine Funktion, Wenn der übergebene Wert größer als 10 ist, geben wir das Zweifache seines Werts zurück. Äh. . . Es ist ziemlich gut, aber es hat seine Mängel. Die Funktion macht zu viele Dinge. Unser Ziel ist es, den doppelten Wert des Parameters zu erhalten, und wir treffen hier eine bedingte Beurteilung. (Natürlich hat es hier keine Auswirkungen, ich gebe nur ein einfaches Beispiel.) Die Funktion, die wir wollen, besteht lediglich darin, einen Wert zurückzugeben.

Betrachten Sie einen Teil des Codes:

function getSomething(value) {
    return value * 2;
}
function proxtGet(value) {
    if (value <10) return;
    return getSomething(value);
}

Jetzt haben wir die Funktion von getSomething getrennt und entschieden, ProxyGet zu verwenden, um es zu tun, dann kann getSomething seine eigene Sache sicher erledigen.

Tatsächlich handelt es sich um eine Art Schutz-Proxy. Wir stellen die ProxyGet-Methode zum Schutz des Zielobjekts bereit. Nur diejenigen, die die Bedingungen erfüllen, können es bedienen.

Wenn es eines Tages nicht mehr nötig ist, ein Urteil zu fällen, können wir getSomething direkt aufrufen, um das Ergebnis zu erhalten.

Das Folgende ist eine Einführung in virtuelle Agenten:

In der Webentwicklung ist die Netzwerkanforderung zweifellos das Teuerste. Wenn wir auf eine Liste klicken, senden wir eine Wenn Sie darum bitten, die Datei in den Hintergrund zu packen, ist ein solcher Netzwerk-Overhead ein Albtraum (vorausgesetzt, die Echtzeitanforderungen dieses Vorgangs sind nicht sehr hoch). Dann können wir ihn auf diese Weise reduzieren Overhead:

function sendFile(files) {
    // 做一些操作,然后发送文件信息给后台
    console.log(&#39;发送成功&#39;);
}
var  proxySendFile = (function () {
    var caches = [];
    var timer = null;
    return function (file) {
        caches.push(file);
        if (timer) { return };
        timer = setTimeout(function () {
            sendFile(caches);
            clearInterval(timer);
            timer = null;
            caches.length = 0;
        }, 2000)
    }
}
)()

Hier ist sendFile der Vorgang zum Senden von Dateien. Wir verwenden ProxySendFIle, um den Vorgang zum Senden von Dateien durchzuführen. Halten Sie dies für möglich. Auch wenn Ihr Qilin-Arm nicht aufzuhalten ist, gibt es hier keinen Unterschied zwischen Ihnen und den anderen.

Verwandte Empfehlungen: Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des JavaScript-Proxy-Modus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn