การส่งการตั้งค่าโมดูลผ่านคลอเจอร์ใน JavaScript
สมมติว่าเรามีโมดูลต่อไปนี้:
;(function(root, type, amount) {
let parent = document.querySelector(root);
for (let i = 1; i <= amount; i++) {
let elem = document.createElement(type);
parent.append(elem);
}
})('#parent', 'p', 5);
อย่างที่คุณเห็น การตั้งค่าสามอย่างถูกส่งเข้าไปในโมดูลนี้: ตัวเลือกขององค์ประกอบแม่ ประเภทขององค์ประกอบที่จะสร้าง และจำนวนองค์ประกอบ
โดยปกติแล้ว การตั้งค่าดังกล่าวจะทำในรูปแบบของอ็อบเจกต์:
let config = {
root: '#parent',
type: 'p',
amount: 5
}
ลองส่งอ็อบเจกต์ของเราเป็นพารามิเตอร์ของโมดูล:
;(function(config) {
let parent = document.querySelector(config.root);
for (let i = 1; i <= config.amount; i++) {
let elem = document.createElement(config.type);
parent.append(elem);
}
})(config);
เป็นที่ยอมรับกันมากกว่าที่จะทำการแยกโครงสร้าง (destructuring) อ็อบเจกต์ที่มีการตั้งค่า:
;(function({root, type, amount}) {
let parent = document.querySelector(root);
for (let i = 1; i <= amount; i++) {
let elem = document.createElement(type);
parent.append(elem);
}
})(config);