title: JavaScript: The Good Parts - How to not use `new` at all
body: <p>Crockford's book, <em>JavaScript: The Good Parts</em>, says (on page 114) that constructor functions should <em>always</em> be given names with an initial capital letter (ie. Point), and that function names with initial capital letters should <em>only</em> be used with constructor functions (everything else should be lowerCase). </p>
  
  <p>This convention helps us avoid forgetting to use the <code>new</code> operator with constructor functions.</p>
  
  <p>He goes on to say that <em>"[a]n even better coping strategy is to not use <code>new</code> at all."</em></p>
  
  <p>My question is, how do we program JavaScript without using <code>new</code> at all?</p>
  
  <ul>
  <li>We can avoid <code>new Object()</code> and <code>new Array()</code> with the literal <code>{}</code> and <code>[]</code>.</li>
  <li>We can avoid <code>new Number()</code>, <code>new Boolean()</code>, and <code>new String()</code> with <code>0</code>, <code>true</code> and <code>''</code>. </li>
  <li>We can avoid <code>new RegExp()</code> with something like <code>/pattern/</code>. </li>
  </ul>
  
  <p>How do we avoid <code>new Date()</code>? </p>
  
  <p>And, most importantly, how do we avoid using <code>new</code> with our own custom Objects?</p>