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 функцияларын қайталаңыз.