⊗jsPmMCLb 505 of 505 menu

Knižnice pomocou uzávorov v JavaScripte

V JavaScripte sa často vytvárajú knižnice, ktoré predstavujú súbory funkcií na použitie inými programátormi.

Takéto knižnice sa zvyčajne balia do modulov pomocou uzávorov. Robí sa to preto, aby pri pripájaní knižnice sa vo vonkajšom svete objavilo čo najmenej funkcií.

Každá knižnica sa spravidla snaží vytvoriť vo vonkajšom svete iba jednu premennú - objekt s funkciami knižnice. Pritom vnútri v kóde knižnice sú niektoré funkcie hlavné a iné - pomocné. Je zrejmé, že do vonkajšieho sveta chceme exportovať iba potrebné funkcie, aby sme nezanášali exportovaný objekt pomocnými funkciami.

Pozrime sa na príklad. Predpokladajme, že máme nasledujúci súbor funkcií, ktoré by sme chceli premeniť na knižnicu:

function square(num) { return num ** 2; } function cube(num) { return num ** 3; } function avg(arr) { return sum(arr, 1) / arr.length; } function digitsSum(num) { return sum(String(num).split('')); } // pomocná funkcia function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; }

Zabalme naše funkcie do modulu:

;(function() { function square(num) { return num ** 2; } function cube(num) { return num ** 3; } function avg(arr) { return sum(arr, 1) / arr.length; } function digitsSum(num) { return sum(String(num).split('')); } // pomocná funkcia function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } })();

A teraz exportujme všetky funkcie okrem pomocnej:

;(function() { function square(num) { return num ** 2; } function cube(num) { return num ** 3; } function avg(arr) { return sum(arr, 1) / arr.length; } function digitsSum(num) { return sum(String(num).split('')); } // pomocná funkcia function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } window.math = {square, cube, avg, digitsSum}; })();

Predpokladajme, že máme HTML stránku index.html:

<html> <head> <script> </script> </head> </html>

Pripojme k nej našu knižnicu:

<html> <head> <script src="math.js"></script> <script> </script> </head> </html>

Využime funkcie z našej knižnice:

<html> <head> <script src="math.js"></script> <script> alert(math.avg([1, 2, 3]) + math.square()); </script> </head> </html>

Daný je nasledujúci kód:

function avg1(arr) { return sum(arr, 1) / arr.length; } function avg2(arr) { return sum(arr, 2) / arr.length; } function avg3(arr) { return sum(arr, 3) / arr.length; } // pomocná funkcia function sum(arr, pow) { let res = 0; for (let elem of arr) { res += elem ** pow; } return res; }

Zabalte tento kód do modulu. Exportujte von všetky funkcie okrem pomocnej.

Preštudujte si knižnicu underscore. Vytvorte svoju podobnú knižnicu, v ktorej zopakujete 5-10 funkcií pôvodnej knižnice.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť