⊗jsPmMCLb 505 of 505 menu

Pustaka melalui Penutupan dalam JavaScript

Seringkali dalam JavaScript, pustaka dicipta, yang mewakili set fungsi untuk digunakan oleh pengaturcara lain.

Pustaka seperti ini biasanya dibungkus dalam modul melalui penutupan. Ini dilakukan supaya apabila pustaka disambungkan, dalam dunia luar sedikit mungkin fungsi yang muncul.

Biasanya, setiap pustaka berusaha untuk mencipta hanya satu pembolehubah dalam dunia luar - objek dengan fungsi pustaka. Pada masa yang sama, dalam kod pustaka, sebahagian fungsi adalah utama, dan sebahagian lagi - fungsi bantu. Jelas sekali, kita ingin mengeksport ke dunia luar hanya fungsi yang diperlukan, tanpa mengclutkan objek yang dieksport dengan fungsi bantu.

Mari kita lihat contoh. Katakan kita mempunyai set fungsi berikut yang kita ingin 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 bantu function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; }

Mari kita susun 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 bantu function sum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } })();

Dan sekarang kita eksport semua fungsi, kecuali fungsi bantu:

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

Katakan kita mempunyai halaman HTML index.html:

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

Mari sambungkan pustaka kita kepadanya:

<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>

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

Susun kod ini dalam bentuk modul. Eksport semua fungsi ke luar, kecuali fungsi bantu.

Kaji pustaka underscore. Buat pustaka anda sendiri yang serupa, ulangi 5-10 fungsi daripadanya pustaka asal.

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