title: How to declare different functions in different conditions?
body: <blockquote>
    <p>Additionally, function declarations should never appear inside of
    block statements. For example, this code won’t behave as expected:</p>
  
  <pre><code>// Bad
  if (condition) {
      function doSomething() {
      alert("Hi!");
    }
  } else {
      function doSomething() {
      alert("Yo!");
    }
  }
  </code></pre>
    
    <p>Exactly how this will work from browser to browser will vary. Most
    browsers automatically take the second declaration without evaluating
    condition; Firefox evaluates condition and uses the appropriate
    function declaration. This is a gray area in the ECMAScript
    specification and should thus be avoided. Function declarations should
    be used only outside of conditional statements. This pattern is
    explicitly forbidden in the Google JavaScript Style Guide.</p>
  </blockquote>
  
  <p>I find these words in the book Maintainable JavaScript in page 42, it says that declaring function in 'if' statement is basicly not allowed. So what's the proper method to declare different functions in different conditions? This book didn't give a solution on this issue.</p>