You can extend or import/assign classes within a class. Here is a example of that.
class Developer { language() { const languages = [ 'Ruby', 'JavaScript', 'Python', 'jQuery', 'Swift', 'HTML5', 'CSS3' ]; } constructor( { name, age, eyeColor = 'blue' } = {} ) { this.name = name; this.age = age; this.eyeColor = eyeColor; } } class Student extends Developer { // If called a framework as true, then it will call the instance of language // if false, then it will call a language aka framework from the Student class language( framework ) { if (framework){ super.language(); return; } const languages = [ 'Ruby on Rails', 'Angular', 'ReactJS', 'Django', 'Ionic', 'Ember' ]; // Generates a random language console.log(`${this.name} is learning ${languages[Math.floor(Math.random() * languages.length)]}.`); } constructor( {name, age, interestLevel = 5 } = {} ) { super({ name, age }); // Needed to call instances from Person this.name = name; // Needed to call this.name this.age = age; // Needed to call this.name this.interestLevel = interestLevel; this.grades = new Map(); } } // Sets the Class name // let colin = new Developer({ name: 'Colin', age: 32 }); let colin = new Student({ name: 'Colin', age: 32, interestLevel: 4 }); colin.language(true); let colper = new Developer(({ name: 'Colper', age: 32 })); //Calls the language function on that class colin.language(); console.log(`Colin's interest level is: ${colin.interestLevel}`); console.log(`Colin's developer name is ${colper.name}, and is ${colper.age} years old.`);