JavaScript Introducing ES2015 Classes Sub-Classes

Setting the traditional property

I modified the sub-class slightly and made the traditional property a part of the constructor. My thought was for a larger project using stevenJ.dance(true); the meaning of true could get obfuscated.

'use strict';

class Person {
  dance() {
    const dances = [
      'waltz',
      'tango',
      'mambo',
      'foxtrot'
    ];
    console.log(`${this.name} is doing the ${dances[Math.floor(Math.random() * dances.length)]}!`);
  }
  constructor({ name, age, eyeColor = 'brown' } = {}) {
    this.name = name;
    this.age = age;
    this.eyeColor = eyeColor;
  }
}

class Student extends Person {

  dance() {
    if(this.traditional) {
         super.dance();
         return;
    } else {
      const dances = [
        'lyrical',
        'tap',
        'ballet',
        'jazz'
      ];

      console.log(`${this.name} is doing the ${dances[Math.floor(Math.random() * dances.length)]}!`);
    }
  }
  constructor({ name, age, interestLevel = 5 } = {} ) {
    super({ name, age });
    this.interestLevel = interestLevel;
    this.grades = new Map;
    this.traditional = true;
  }
}

let stevenJ = new Student({ name: 'Steven', age: 22 });
stevenJ.traditional = false;
stevenJ.dance();
console.log(stevenJ.interestLevel);