title: Reifying call to "new Type()" in JavaScript
body: <p>Is there a syntax/API/idiom in JavaScript to get a <strong>function</strong> that instantiates a type, for any type? </p>
  
  <p>That is, replace a call to <code>new Type(..args)</code> with, for instance, (pseudocode) <code>Type.new(...args)</code> so that I can pass the function object as a parameter? </p>
  
  <p>I've tried using <code>const newTypeAsFn = new Type</code> on its own (without parentheses), but it still results in a constructor call instead of returning a function object that can be passed as a parameter and called later.</p>
  
  <p>This is an example of what I wanted to be able to do:</p>
  
  <pre><code>const newStringAsFn = String.new;
  [1, 2, 3].map(newStringAsFn);
  // [String {"1"}, String {"2"}, String {"3"}]
  </code></pre>
  
  <p>I came up with a function that does that:</p>
  
  <pre><code>const newAsFn = (type) =&gt; (...args) =&gt; new type(...args);
  </code></pre>
  
  <p>That can be used like this:</p>
  
  <pre><code>const newStringAsFn = newAsFn(String);
  [1, 2, 3].map(newStringAsFn);
  </code></pre>
  
  <p>Is there a way to do that without using this (possibly buggy) function I made up? A convention? Popular library method?</p>