×
Vytvárame riešenia

Spoznávame dojo/aspect

V tomto článku predstavím zaujímavé riešenie dojo/aspect, ktoré umožňuje mať pod kontrolou metódy objektu. Toto riešenie má najmä zmysel, ak sa používajú knižnice tretích strán a nechceme alebo nemôžeme ich modifikovať či rozširovať.
Všetky metódy modulu dojo/aspect budem demonštrovať na nasledujúcom objekte.
Príklad: Demonštračný objekt.
1
2
3
4
5
var o = {
display: function () {
console.log("display");
}
};

Metóda before()

Metóda before() zabezpečí spustenie definovanej funkcie pred zadanou metódou objektu. V našom prípade sa pred metódou display() spustí funkcia before().
Príklad: Demonštrácia metódy before().
1
2
3
4
5
6
function before() {
console.log("before");
}
aspect.before(o, "display", before);
o.display();

Metóda after()

Metóda after() zabezpečí spustenie definovanej funkcie za zadanou metódou objektu. V našom prípade sa po metóde display() spustí funkcia after().
Príklad: Demonštrácia metódy after().
1
2
3
4
5
6
function after() {
console.log("after");
}
aspect.after(o, "display", after);
o.display();

Metóda around()

Metóda around() funguje trochu na inom princípe. V prvom rade je potrebné pracovať s parametrom originalMethod. Vďaka tomu môžeme aplikovať metódy before() a after(). V tomto prípade sa metóda display() nevolá automaticky, ale je ju potrebné volať manuálne. Taktiež si je možné zvoliť poradie metód, ako budú volané či rozšíriť telo funkcie o ďalšie metódy. Metóda display() je reprezentovaná parametrom originalMethod.
Príklad: Demonštrácia metódy around().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function before() {
console.log("before");
}
function after() {
console.log("after");
}
function around(originalMethod) {
return function() {
before();
originalMethod();
after();
}
}
aspect.around(o, "display", around);
o.display();

Záver

Ak máte zaujímavé tipy kedy je vhodné použiť dojo/aspect, podeľte sa o ne prostredníctvom komentára.


Dojo,dojo/aspect,before(),after(),around()
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších