title: ES6 arrow functions not working on the prototype?
body: <p>When ES6 Arrow functions don't seem to work for assigning a function to an object with prototype.object. Consider the following examples:</p>
  
  <pre><code>function Animal(name, type){
   this.name = name;
    this.type = type;
    this.toString = () =&gt; `${this.name} is a ${this.type}`;
  
  }
  var myDog = new Animal('Max', 'Dog');
  console.log(myDog.toString()); //Max is a Dog
  </code></pre>
  
  <p>Using the arrow function explicitly in the object definition works, but using the arrow functions with the Object.prototype syntax does not:</p>
  
  <pre><code>function Animal2(name, type){
    this.name = name;
    this.type = type;
  }
  Animal2.prototype.toString = () =&gt; `${this.name} is a ${this.type}`;
  
  var myPet2 = new Animal2('Noah', 'cat');
  console.log(myPet2.toString()); //is a undefined
  </code></pre>
  
  <p>Just as a proof of concept, using the Template string syntax with Object.prototype syntax does work:</p>
  
  <pre><code>function Animal3(name, type){
    this.name = name;
    this.type = type;
  }
  Animal3.prototype.toString = function(){ return `${this.name} is a ${this.type}`;}
  
  var myPet3 = new Animal3('Joey', 'Kangaroo');
  console.log(myPet3.toString()); //Joey is a Kangaroo
  </code></pre>
  
  <p>Am I missing something obvious? I feel that example 2 should work logically, but I am puzzled by the output. I'm guessing it is a scoping issue, but I am thrown off by the output 'is a undefined'.</p>
  
  <p><a href="http://www.es6fiddle.net/ics4dh0m/" rel="noreferrer">ES6 Fiddle</a></p>