title: __proto__ of a function
body: <p>If I have a class called Person.</p>
  
  <pre><code>var Person =  function(fname, lname){
      this.fname = fname;
      this.lname = lname;
  }
  
  Person.prototype.mname = "Test";
  var p = new Person('Alice','Bob');
  </code></pre>
  
  <p>Now, <code>p.__proto__</code> refers to prototype of Person but, when I try to do <code>Person.__proto__</code>, it points to <code>function()</code>, and <code>Person.constructor</code> points to <code>Function()</code>.</p>
  
  <p>Can someone explain what is the difference between <code>function()</code> and <code>Function()</code> and why the prototype of a <code>Function()</code> class is a <code>function()</code>?</p>