• Vamos imaginar que na nossa aplicação temos um arquivo javascript com várias funções e que utilizamos essas funções várias vezes:

    function label(attributes) {
      const element = document.createElement('label')
      Object.assign(element, attributes)
      return element
    }
    
    function input(attributes) {
      const element = document.createElement('input')
      Object.assign(element, attributes)
      return element
    }
    
    function br() {
      const element = document.createElement('br')
      return element
    }
    
    console.log(label({ for: 'fullname', textContent: 'Nome Completo'}))
    console.log(input({ id: 'fullname', name: 'fullname', placeholder: 'Digite seu nome completo...'}))
    console.log(br())
    
  • Vamos modularizar nosso código javascript utilizando os ES Modules:

    // functions.js
    
    export function label(attributes) {
      const element = document.createElement('label')
      Object.assign(element, attributes)
      return element
    }
    
    export function input(attributes) {
      const element = document.createElement('input')
      Object.assign(element, attributes)
      return element
    }
    
    export function br() {
      const element = document.createElement('br')
      return element
    }
    
    // index.js
    
    import { label, input, br } from './functions.js'
    
    console.log(label({ for: 'fullname', textContent: 'Nome Completo'}))
    console.log(input({ id: 'fullname', name: 'fullname', placeholder: 'Digite seu nome completo...'}))
    console.log(br())