title: Reasoning about function statements in JavaScript
body: <p>Consider the following code:</p>
  
  <pre><code>function f() {
    function Ctor() {}
    return { instance: new Ctor(), referenceToCtor: Ctor };
  }
  
  var a = f();
  var b = f();
  
  a.instance instanceof a.referenceToCtor; // true
  b.instance instanceof a.referenceToCtor; // false
  </code></pre>
  
  <p>What does this tell us about the meaning of <code>instanceof</code> and function statements? </p>
  
  <p>Does this mean that each time <code>f</code> is invoked a completely new Function-object named <code>Ctor</code> is instantiated and hence <code>instanceof</code> returns <code>false</code>.</p>
  
  <p>Is this similar to the problems of <code>instanceof Array</code> and multiple windows?</p>