⊗jsPmMCPP 499 of 505 menu

Passaggio di parametri al modulo attraverso le chiusure in JavaScript

È considerata una buona pratica non incorporare valori all'interno del modulo, ma passarli come parametri al modulo stesso (cioè come parametri della funzione richiamata immediatamente):

;(function(arg1, arg2) { // i parametri vengono assegnati alle variabili })(1, 2); // passiamo alcuni parametri

Vediamo un esempio. Supponiamo di avere un div con un numero e un pulsante:

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

Supponiamo inoltre di avere un certo modulo:

;(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); }); })();

Come puoi vedere, i selettori dei nostri elementi sono rigidamente incorporati nel codice del modulo. Una soluzione migliore sarebbe passarli come parametri al modulo - in questo modo in futuro potremmo modificarli facilmente. Correggiamo il nostro modulo:

;(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');

Dato un pulsante e tre input, in cui vengono inseriti numeri. Alla pressione del pulsante, stampa in console la somma dei numeri inseriti. Implementa il task utilizzando un modulo.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta