Ho una variabile che voglio usare in una sola funzione. Posso scrivere il mio codice in questo modo:
var theAnswerToLife = 42
var multiplyIt = function(x) {
return ++theAnswerToLife * x
}
Ho alcune altre funzioni in quel file, che non usano quella variabile. Pertanto, al fine di limitare l'accesso a tale variabile solo alla funzione multiplyIt
, potrei inserirlo in un IIFE:
var multiplyIt = (function() {
var theAnswerToLife = 42
return function(x) {
return ++theAnswerToLife * x
}
}())
Ora quella variabile è disponibile solo per la funzione interna. Tale incapsulamento ha ovviamente senso quando ho più variabili, ma vale la pena con una sola variabile? La sintassi IIFE è piuttosto pesante e, in un codice più complesso, potrei finire per avere come tre IFFE nidificati.
Come mantenere l'equilibrio tra incapsulamento e leggibilità del codice? Dov'è il limite?
Il mio ambiente è Node.js, quindi una variabile definita all'esterno di una funzione non sarà globale, ma sarà disponibile solo nell'ambito del modulo.