⊗jsPmMCLb 505 of 505 menu

Pustaka melalui Closure di JavaScript

Seringkali di JavaScript dibuat pustaka, yang merupakan kumpulan fungsi untuk digunakan oleh programmer lain.

Pustaka seperti ini biasanya dibungkus ke dalam modul melalui closure. Hal ini dilakukan agar saat pustaka dihubungkan ke dunia luar, sedikit mungkin fungsi yang muncul.

Biasanya, setiap pustaka berusaha untuk membuat hanya satu variabel di dunia luar - sebuah objek yang berisi fungsi-fungsi pustaka. Sementara di dalam kode pustaka, sebagian fungsi merupakan fungsi utama, dan sebagian lagi adalah fungsi pembantu. Jelas, ke dunia luar kita hanya ingin mengekspor fungsi-fungsi yang diperlukan, tanpa mengotori objek yang diekspor dengan fungsi-fungsi pembantu.

Mari kita lihat sebuah contoh. Misalkan kita memiliki kumpulan fungsi berikut yang ingin kita jadikan sebagai pustaka:

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

Mari kita kemas fungsi-fungsi kita dalam bentuk 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('')); } // fungsi pembantu function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } })();

Dan sekarang ekspor semua fungsi, kecuali fungsi pembantu:

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

Misalkan kita memiliki halaman HTML index.html:

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

Mari hubungkan pustaka kita ke dalamnya:

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

Mari gunakan fungsi dari pustaka kita:

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

Diberikan kode berikut:

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

Kemas kode ini dalam bentuk modul. Ekspor keluar semua fungsi, kecuali fungsi pembantu.

Pelajari pustaka underscore. Buat pustaka Anda sendiri yang serupa, dengan mengulang 5 hingga 10 fungsi dari pustaka aslinya.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak