Strona główna > Inne > Proxy w JavaScript

Proxy w JavaScript

Trafiłem ostatnio na ciekawe użycie Proxy w JavaScript. Wcześniej nie myślałem że można tak robić. Pisałem (pisze ciągle) bardziej w skryptowy (proceduralny) sposób w tym języku. Jednak JavaScript jest bardziej elegancki w wyrażaniu intencji jakie kryją się za pojęciem proxy.
A więc w kodzie wygląda to tak, prosta funkcja i następna która tworzy proxy do pierwszej:

function executeAlert(){
  alert('powiedz w alert');
} 

function decorateExecuteAlert(){
  var oldExecuteAlert = executeAlert;
  executeAlert = function() {
    alert('przed alert');
    oldExecuteAlert();
  };
} 

Albo jeszcze lepiej można zmienić samego alerta:

function changeAlert(){
  var oldAlert = alert;
  alert = function(value) {
    oldAlert('>'+value+'<');
  };
} 

Jak już zasugerowałem to nazwą drugiej funkcji, jest to też rodzaj dekoratora. Ogólnie taka konstrukcja oferuje duże możliwości. Ja na nią trafiłem idąc za potrzebą stworzenia obserwatora zdarzeń wywołania danej funkcji. Dzięki temu można czasowo dodać (podpiąć się) coś do danej funkcji, a potem usunąć to. Można też zmodyfikować działanie i dodać warunek kiedy właściwa funkcja ma się wykonywać, lub podpiąć dodatkowe logowanie do wywołań jej. Możliwości jest wiele🙂.

Kategorie:Inne Tags:
  1. Brak komentarzy.
  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: