text: class Rabbit {
    constructor(type) {
      this.type = type;
    }
    speak(line) {
      console.log(`The ${this.type} rabbit says '${line}'`);
    }
  }
  Rabbit.prototype.teeth = "small";
  
  let killerRabbit = new Rabbit("killer");
  let blackRabbit = new Rabbit("black");
  
  console.log(killerRabbit.teeth);
  killerRabbit.teeth = "long, sharp, and bloody";
  console.log(killerRabbit.teeth);
  
  console.log(blackRabbit.teeth);
  console.log(Rabbit.prototype.teeth);
  
  // Overriding also used to give the standard function and array prototypes a different
  // toString method than object prototype
  
  console.log(Array.prototype.toString == Object.prototype.toString);
  console.log([1, 2].toString());
  
  // Directly calling Object.prototype.toString on array produces different result
  console.log(Object.prototype.toString.call([1, 2]));