title: What are extra advantage of using ES6 module instead of revealing module pattern?
body: <p>I am exploring ES6 <code>module</code> and trying to figure out what extra advantage we get using ES6 module instead of <code>closure</code> along with <code>module pattern</code>(MP).</p>
  
  <p>For example
  util.js in ES6. </p>
  
  <pre><code>   var util ={
           abc:function(){
          //function body
      },
      def:function(){
           // function body
      }
      export default utils;   // here export is exposing the entire object
  }
  </code></pre>
  
  <p>util.js using closure &amp; module pattern</p>
  
  <pre><code>var util = (function(){
         function _abc(){
           console.log("abc")
             // function body
         };
      function _def(){
           // function body
        }
  
    return{          // each of the function will be exposed
        abc:_abc,
        def:_def
  
  }
  }(util ||{}))
  </code></pre>
  
  <p>someFile.js in ES6</p>
  
  <pre><code>import {utils} from "path/to/file"
  </code></pre>
  
  <p>In someFile.js with closure &amp; module pattern</p>
  
  <pre><code>util.abc() // Will log "abc"
  </code></pre>
  
  <p>Also I know es6 <code>module</code> allow us to rename <code>imports &amp; exports</code> 
  Like <code>export { a as abc}</code> .</p>
  
  <p>With closure &amp; module pattern we can give a name whatever we like inside return statement like return <code>{ a:_abc}</code></p>
  
  <p>My question:What extra benefit we can get by using es6 module instead of closure&amp; MP.One i guess is reduction in lines of code.</p>
  
  <p>Please excuse me if I have missed any basic difference</p>