⊗jsPmMCLb 505 of 505 menu

ბიბლიოთეკები ჩაკეტვების მეშვეობით JavaScript-ში

ხშირად JavaScript-ში იქმნება ბიბლიოთეკები, რომლებიც წარმოადგენს ფუნქციების კოლექციებს სხვა პროგრამისტების მიერ გამოსაყენებლად.

ასეთი ბიბლიოთეკები ჩვეულებრივ ჩაიფარება მოდულებში ჩაკეტვების მეშვეობით. ეს კეთდება იმისთვის, რომ ბიბლიოთეკის შეერთებისას გარე სამყაროში რაც შეიძლება ნაკლები ფუნქცია გამოჩნდეს.

როგორც წესი, ყოველი ბიბლიოთეკა ცდილობს გარე სამყაროში მხოლოდ ერთი ცვლადის შექმნას - ობიექტი ბიბლიოთეკის ფუნქციებით. ამ შემთხვევაში, შიგნით ბიბლიოთეკის კოდში ფუნქციების ნაწილი არის ძირითადი, ნაწილი კი - დამხმარე. ცხადია, რომ გარე სამყაროში ჩვენ გვინდა ექსპორტზე გავატანოთ მხოლოდ საჭირო ფუნქციები, რათა არ დავააბეზროთ ექსპორტირებადი ობიექტი დამხმარე ფუნქციებით.

მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს ფუნქციების შემდეგი ნაკრები, რომლის ბიბლიოთექად ქცევაც გვსურს:

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('')); } // დამხმარე ფუნქცია function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; }

მოდით, ჩვენი ფუნქციები ჩავსვათ მოდულის ფორმატში:

;(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('')); } // დამხმარე ფუნქცია function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } })();

ახლა კი გავატანოთ ექსპორტზე ყველა ფუნქცია, დამხმარესის გარდა:

;(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('')); } // დამხმარე ფუნქცია function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } window.math = {square, cube, avg, digitsSum}; })();

დავუშვათ, გვაქვს HTML გვერდი index.html:

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

მოდით, მივაბათ იგი ჩვენს ბიბლიოთეკას:

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

გამოვიყენოთ ფუნქციები ჩვენი ბიბლიოთეკიდან:

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

მოცემულია შემდეგი კოდი:

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; } // დამხმარე ფუნქცია function sum(arr, pow) { let res = 0; for (let elem of arr) { res += elem ** pow; } return res; }

ჩააწერეთ ეს კოდი მოდულის სახით. ექსპორტზე გაატანეთ ყველა ფუნქცია, დამხმარესის გარდა.

გაეცანით underscore ბიბლიოთეკას. შექმენით თქვენი მსგავსი ბიბლიოთეკა, რომელშიც გაიმეორებთ ორიგინალური ბიბლიოთეკის 5-10 ფუნქციას.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა