title: Javascript: Overwriting function's prototype - bad practice?
body: <p>Since when we declare a function we get its prototype's constructor property point to the function itself, is it a bad practice to overwrite function's prototype like so:</p>
  
  <pre><code>function LolCat() {
  }
  
  // at this point LolCat.prototype.constructor === LolCat
  
  LolCat.prototype = {
      hello: function () {
          alert('meow!');
      }
      // other method declarations go here as well
  };
  
  // But now LolCat.prototype.constructor no longer points to LolCat function itself
  
  var cat = new LolCat();
  
  cat.hello(); // alerts 'meow!', as expected
  
  cat instanceof LolCat // returns true, as expected
  </code></pre>
  
  <p>This is not how I do it, I still prefer the following approach</p>
  
  <pre><code>LolCat.prototype.hello = function () { ... }
  </code></pre>
  
  <p>but I often see other people doing this.</p>
  
  <p>So are there any implications or drawbacks by removing the constructor reference from the prototype by overwriting the function's prototype object for the sake of convenience as in the first example?</p>