2017-08-17 2 views
-1

Existe-t-il un moyen approprié (ES6 friendly) pour éviter d'utiliser la variable globale dans mon exemple JavaScript? J'ai vu que nous pouvons utiliser une fonction pour envelopper notre code dans une fermeture? ..Bonne façon d'éviter la variable globale

<textarea name="fileEdition" id="fileEdition" placeholder="Some content from a file, editable"></textarea> 
<button id="saveFile">Save</button> 

<script> 
    const files = document.querySelector('#RandomFileListGotInPHP'); 
    const fileEdition = document.querySelector('#fileEdition'); 
    const saveButton = document.querySelector('#saveFile'); 

    function openFile() { 
     fileEditionBackup = fileEdition.value;  
    } 

    function saveFile() { 
     console.log(`backup content before save in PHP: ${fileEditionBackup}`); 
    } 

    files.addEventListener('change', openFile); 
    saveButton.addEventListener('click', saveFile); 
</script> 

Merci pour l'aide.

+0

IIFE est compatible ES6. –

Répondre

1

je ne vois pas une raison contre une IIFE:

(function() { 

    const files = document.querySelector('#RandomFileListGotInPHP'); 
    const fileEdition = document.querySelector('#fileEdition'); 
    const saveButton = document.querySelector('#saveFile'); 

    function openFile() { 
     fileEditionBackup = fileEdition.value;  
    } 

    function saveFile() { 
     console.log(`backup content before save in PHP: ${fileEditionBackup}`); 
    } 

    files.addEventListener('change', openFile); 
    saveButton.addEventListener('click', saveFile); 
})(); 

Bien sûr, +function(){ ... }() ou (_=>{ ... })() fonctionnera aussi bien.