⊗jsPmMCPP 499 of 505 menu

Passage de paramètres dans un module via des fermetures en JavaScript

Il est considéré comme une bonne pratique de ne pas coder en dur certaines valeurs dans un module, mais de les passer en tant que paramètre du module lui-même (c'est-à-dire en tant que paramètre de la fonction invoquée immédiatement) :

;(function(arg1, arg2) { // les paramètres sont affectés aux variables })(1, 2); // nous passons quelques paramètres

Regardons un exemple. Supposons que nous ayons une div avec un nombre et un bouton :

<div id="div">3</div> <button id="btn">click me</button>

Supposons également que nous ayons un certain module :

;(function() { let div = document.querySelector('#div'); let btn = document.querySelector('#btn'); function func(num) { return num * num; } btn.addEventListener('click', function() { div.textContent = func(div.textContent); }); })();

Comme vous pouvez le voir, les sélecteurs de nos éléments sont codés en dur dans le module. Une meilleure solution serait de les passer en paramètres du module - ainsi, nous pourrons facilement les modifier à l'avenir. Corrigeons notre module :

;(function(selector1, selector2) { let div = document.querySelector(selector1); let btn = document.querySelector(selector2); function func(num) { return num * num; } btn.addEventListener('click', function() { div.textContent = func(div.textContent); }); })('#div', '#btn');

Un bouton et trois champs de saisie sont donnés, dans lesquels des nombres sont saisis. Lorsque vous cliquez sur le bouton, affichez dans la console la somme des nombres saisis. Implémentez la tâche en utilisant un module.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser