Overdracht van module-instellingen via sluitingen in JavaScript
Stel we hebben de volgende module:
;(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);
Zoals je ziet, worden er drie instellingen doorgegeven aan deze module: de selector van het bovenliggende element, het type element om te creëren en het aantal elementen.
Dergelijke instellingen worden meestal gemaakt in de vorm van een object:
let config = {
root: '#parent',
type: 'p',
amount: 5
}
Laten we ons object als parameter doorgeven aan de module:
;(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);
Het is gebruikelijker om destructuring toe te passen op het object met instellingen:
;(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);