⊗jsPmMCLb 505 of 505 menu

Bibliotēkas ar aizvērumiem JavaScript

Bieži JavaScript tiek izveidotas bibliotēkas, kuras ir funkciju kopas, ko var izmantot citi programmētāji.

Šādas bibliotēkas parasti tiek ietītas moduļos ar aizvērumu palīdzību. Tas tiek darīts, lai pievienojot bibliotēku ārējā vidē parādītos pēc iespējas mazāk funkciju.

Parasti katra bibliotēka cenšas izveidot ārējā vidē tikai vienu mainīgo - objektu ar bibliotēkas funkcijām. Tajā pašā laikā bibliotēkas kodā daļa funkciju ir pamata, bet daļa - palīgfunkcijas. Acīmredzot, ārējā vidē mēs vēlamies eksportēt tikai nepieciešamās funkcijas, nepiesārņojot eksportēto objektu ar palīgfunkcijām.

Apskatīsim piemērā. Pieņemsim, ka mums ir šāda funkciju kopa, kuru mēs vēlētos pārvērst bibliotēkā:

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('')); } // palīgfunkcija function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; }

Iesaiņosim mūsu funkcijas moduļa formātā:

;(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('')); } // palīgfunkcija function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } })();

Un tagad eksportēsim visas funkcijas, izņemot palīgfunkciju:

;(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('')); } // palīgfunkcija function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } window.math = {square, cube, avg, digitsSum}; })();

Pieņemsim, ka mums ir HTML lapa index.html:

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

Pievienosim tai mūsu bibliotēku:

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

Izmantosim funkcijas no mūsu bibliotēkas:

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

Dots šāds kods:

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; } // palīgfunkcija function sum(arr, pow) { let res = 0; for (let elem of arr) { res += elem ** pow; } return res; }

Noformējiet šo kodu kā moduli. Eksportējet ārā visas funkcijas, izņemot palīgfunkciju.

Izpētiet bibliotēku underscore. Izveidojiet savu līdzīgu bibliotēku, atkārtojot tajā 5-10 funkcijas no oriģinālās bibliotēkas.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt