title: ES6 Computed (dynamic) property names
body: <p>I am reading <a href="https://github.com/lukehoban/es6features#enhanced-object-literals" rel="nofollow">this</a> explanation in order to get a better understanding of ES6. </p>
  
  <p>In the bit about Enhanced Object Literals, this is given as example code:</p>
  
  <pre><code>var obj = {
      ... (removed as not relevant) ...
  
      // Computed (dynamic) property names
      [ 'prop_' + (() =&gt; 42)() ]: 42
  };
  </code></pre>
  
  <p>I understand what is happening except for the last sentence</p>
  
  <p>I get that</p>
  
  <pre><code>: 42
  </code></pre>
  
  <p>Is the value (Number) that will be given to the property, and that</p>
  
  <pre><code>[ 'prop_' + ... ]
  </code></pre>
  
  <p>Is a dynamic variable name that starts with the string <strong>prop_</strong>.</p>
  
  <p>However, what does this mean/do?</p>
  
  <pre><code>(() =&gt; 42)()
  </code></pre>