⊗jsPmMCLb 505 of 505 menu

Bibliotekos uždarumo pagalba JavaScript

JavaScript dažnai kuriamos bibliotekos, kurios yra funkcijų rinkiniai, skirti naudoti kitiems programuotojams.

Tokios bibliotekos paprastai apgaubiamos moduliais uždarymo pagalba. Tai daroma tam, kad prijungus biblioteką išoriniame pasaulyje atsirastų kuo mažiau funkcijų.

Paprastai kiekviena biblioteka stengiasi sukurti išoriniame pasaulyje tik vieną kintamąjį - objektą su bibliotekos funkcijomis. Tuo tarpu viduje bibliotekos kode dalis funkcijų yra pagrindinės, o dalis - pagalbinės. Akivaizdu, kad į išorinį pasaulį mes norime eksportuoti tik reikalingas funkcijas, neužteršdami eksportuojamo objekto pagalbinėmis funkcijomis.

Pažiūrėkime pavyzdžiu. Tarkime, kad mes turime tokį funkcijų rinkinį, kurį norėtume paversti biblioteka:

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

Suformuokime mūsų funkcijas kaip modulį:

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

O dabar eksportuokime visas funkcijas, išskyrus pagalbinę:

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

Tarkime, kad turime HTML puslapį index.html:

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

Prijunkime prie jo mūsų biblioteką:

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

Panaudokime funkcijas iš mūsų bibliotekos:

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

Duotas toks kodas:

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

Suformuokite šį kodą kaip modulį. Eksportuokite į išorę visas funkcijas, išskyrus pagalbinę.

Išstudijuokite biblioteką underscore. Sukurkite savo panašią biblioteką, pakartoję joje 5-10 originalios bibliotekos funkcijų.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti