Parent Methode Umsetzung verlangtDer Stamm-Methode Umsetzung verlangtproxyFunc.apply und übergibt als Parameter dieser und der um Argumente Array args. Dann, wenn die Funktion mit der proxyFunc Variablen zugeordnet wird ausgeführt, wenn diese verwiesen wird, das richtige Objekt Instanz verwiesen wird. Mit Anwendung ist sehr nützlich und vereinfacht die Proxy-Methode Umsetzung. Der Nachteil ist, dass die ursprüngliche Methode übergeben, um die Proxy-Methode muss auch anwenden. Wenn bei der ursprünglichen Methode der Proxy-Funktion nicht anzuwenden und Beruf, dann könnten Fehler generiert werden.
Bei der Ausführung des generierten Codes wird ordnungsgemäß funktionieren. Die Herausforderung liegt in der Generierung des Codes. Ein Ansatz ist, um einen Text Puffer, der die vollständige Umsetzung der Proxy-Methode stellt zu generieren. Ein anderer Ansatz ist es, dynamisch zu generieren und einige Teile des generierten Codes zu bewerten und eine dynamische Funktion zu nutzen für die anderen Teile. Jede dieser Lösungen ist problematisch, und die beste Lösung ist es, JavaScript Generika zu verwenden. Mit Hilfe von JavaScript Generika, können Sie den gewünschten Code zu definieren und zur Laufzeit die Verhaltens-Aspekte erweitert werden kann. Der folgende Code ist die Proxy-Generierung Lösung. Quelle: / website / root / scripts / Jaxson / Common.js Proxy: function (instance, funcIdentifier, newfunc) (if (! Instanz [funcIdentifier]) (throw new Error ( "Methode nicht auf dieses Objekt existieren (" funcIdentifier + + " ) ");) var proxyPrototype = function () (var origFunc = __orig; var proxyFunc = __proxy; var args = new Array (); for (var c1 = 0; c1 <arguments.length; c1 + +) (args. push (arguments [0]);) args.push (origFunc); args.push (arguments); return proxyFunc.apply (this, args);) Instanz [funcIdentifier] = Generics.expand (proxyPrototype, (__orig: Beispiel [ funcIdentifier], __proxy: newfunc));) Der Proxy-Umsetzung braucht nicht viel zu erklären, da der Code bereits weitgehend erklärt. Schauen Sie sich die Definition des proxyPrototype variabel, und Sie sollten eine Ähnlichkeit mit der ideale generierten Code, der in dem Artikel erklärt wurde vorbehalten. Der einzige Unterschied proxyPrototype und die ideale Code ist, dass die Werte für origFunc und proxyFunc haben nicht definiert. Die origFunc und proxyFunc Variablen zugewiesen wurden die __orig und __proxy variable Werte, die sind Kennungen, in der JavaScript-Generika Expansion verwenden. Der Aufruf von Generics.expand wird der Puffer zu erweitern ähneln der ideale Puffer. Die Parameter, die der Proxy-Methode sind beispielsweise die Objekt-Instanz zu einem Proxy-Methode stellt die Umsetzung zu generieren; funcIdentifier, die einen String-Puffer der Methode, die Proxy-stellt; und newfunc, die die Proxy-Funktion, die vor Ablauf der ursprünglichen heißt darstellt. Der Proxy-Methode kann verwendet werden, wie im folgenden Beispiel gezeigt. Quelle: / website / ROOT / Ajax / Javascript / proxy.html automated_proxy: function () (var cls = new DefinedClass (); info ( "automated_proxy (cls.defined | vor)", cls.defined.toString ()); ops . proxy (cls, "definiert", function (tstValue, toCall, args) (info ( "proxyfunction", "Parameter (" tstValue + + ") erhielt arg count (" arguments.length + + ") original arg count (" + + args.length ")"); toCall.apply (this, args);)); info ( "automated_proxy (cls.defined | after)", cls.defined.toString ()); cls.value = 10; cls.defined (10);) Bei der Umsetzung ist die DefinedClass Typ instanziiert und für die CLS-Variable. Zur Veranschaulichung ist die Umsetzung der cls.defined generiert (info (..., cls.defined.toString)) zu zeigen, was die ursprüngliche Methode Umsetzung. Der Aufruf von ops.proxy hat drei Parameter, und die ersten beiden Parameter (cls und "definiert") liegen auf der Hand. Der dritte Parameter ist der Proxy-Methode, und im Falle des Beispiels ist es eine Inline-Funktion. Der dritte Parameter muss nicht sein eine Inline-Methode, es kann eine Funktion Verweis oder eine andere Klasse-Instanz. Nach dem Aufruf von ops.proxy ist ein weiterer Anruf, um die Info-Funktion, um die geänderte Fassung des cls.defined Methode zu erläutern. Tipp Dich deines eigenen Verstandes zu testen, führen Sie den Test-Code aus den Proben zu, wie der Code funktioniert. Die letzte Zeile des Codes, der den definierten Methode ruft zeigt, dass der Proxy-Methode aufgerufen wird, bevor die ursprüngliche Methode. Bei der Umsetzung der Proxy-Muster für eine Methode, halten Sie die folgenden Punkte beachten: • Die Proxy-Muster für eine Methode angewendet wird, wenn Sie zu filtern, aufbereiten wollen, und Postprocessing-Parameter vor (wenn) sie werden an die Methode übergeben. • Die Umsetzung der Proxy-Methode ist für den Aufruf der ursprünglichen Methode verantwortlich. • Die Proxy-Muster für eine Methode ist am besten durch die Einbettung von Funktionen innerhalb von Funktionen implementiert. Der Vorteil der Verwendung eines eingebetteten Ansatzes ist, dass die Funktion von anderen Objekt-Instanzen ohne Beschädigung der Implementierung der Methode verwiesen werden kann. • Die Proxy-Muster für eine Methode eingebettet werden kann mehrere Male. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Parent Methode Umsetzung verlangt" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 361 users browsing the articles directory |
|
|