title: How does __proto__ differ from constructor.prototype?
body: <pre><code>function Gadget(name, color)
  {
     this.name = name;
     this.color = color;
  }
  
  Gadget.prototype.rating = 3
  
  var newtoy = new Gadget("webcam", "black")
  
  newtoy.constructor.prototype.constructor.prototype.constructor.prototype 
  </code></pre>
  
  <p>It always returns the object with rating = 3.</p>
  
  <p>But if I do the following:</p>
  
  <pre><code>newtoy.__proto__.__proto__.__proto__
  </code></pre>
  
  <p>The chain ends up returning <code>null</code>.</p>
  
  <p>Also in Internet Explorer how would I check the null if there is not a <code>__proto__</code> property?</p>