การสร้าง ES module ใน JavaScript
ตอนนี้เรามาเริ่มศึกษาโมดูลกัน แต่ละโมดูลควรเป็นไฟล์แยกต่างหาก ตัวแปรและฟังก์ชันที่เราวางไว้ในไฟล์นี้จะไม่สามารถเข้าถึงได้จากภายนอกไฟล์ นี่คือข้อได้เปรียบของโมดูล - เราสามารถสร้างตัวแปรและฟังก์ชันใดๆ ก็ได้โดยไม่ต้องกลัวว่าจะขัดแย้งกับชื่อจากไลบรารีอื่น
ตัวแปรและฟังก์ชันที่เราต้องการให้มองเห็นจากภายนอก เราต้องส่งออก (export) โดยใช้คำสั่ง export
มาลองดูตัวอย่างกัน
สร้างโมดูล math ซึ่งจะเป็นไลบรารีฟังก์ชันสำหรับการดำเนินการทางคณิตศาสตร์
วางโมดูลของเราในไฟล์ math.js และสร้างฟังก์ชันหลายๆ ฟังก์ชันในนั้น:
function root2(num) {
return round(num ** (1 / 2));
}
function root3(num) {
return round(num ** (1 / 3));
}
function round(num) {
return num.toFixed(2);
}
ให้ฟังก์ชันสำหรับการหารากที่สองและรากที่สามเป็นฟังก์ชันหลักและจะถูกส่งออกไปภายนอก ส่วนฟังก์ชันสำหรับการปัดเศษเป็นฟังก์ชันเสริมและจะไม่ถูกส่งออก
มาเขียนคำสั่ง export ให้กับฟังก์ชันที่ต้องการ:
export function root2(num) {
return round(num ** (1 / 2));
}
export function root3(num) {
return round(num ** (1 / 3));
}
function round(num) {
return num.toFixed(2);
}
สร้างโมดูลที่มีฟังก์ชัน pow2 สำหรับการยกกำลังสองของตัวเลข, pow3 สำหรับการยกกำลังสาม และ pow4 สำหรับการยกกำลังสี่