title: Inner function calling parent function with setTimeout
body: <p>How can an inner function call a parent function after it has expired?</p>
  
  <pre><code>setTimeout(main, 2000);
  function main(){
      /* .... code */
      setTimeout(console.log("hello after 5 seconds"), 5000);
  }
  </code></pre>
  
  <p>The intended action is to print <code>hello after 5 seconds</code> in 5 seconds (7 total); with the above code it prints it in 2 seconds.</p>