title: Inherited methods not printing expected values in Javascript
body: <p>In following code I'm expecting to print the values passed in to them as sentences. But instead program is printing the declaring function to the console.</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>class Person {
  
    constructor(firstName, lastName){
      this._firstName = firstName;
      this._lastName = lastName;
    }
  
    printName() {
      return `Hello my name is ${this.firstName} ${this.lastName}`
    }
  }
  
  class Staff extends Person {
  
    constructor(firstName, lastName, employeeID, location){
      super(firstName, lastName);
      this._employeeID = employeeID;
      this._location = location
    }
  
    printName(){
      return `${super.printName}, my staff ID is ${this.employeeID}`
    }
  
    facilitatedBranch(){
      return `My branch is ${this._location}`
    }
  }
  
  class ProjectManager extends Staff {
  
    constructor(firstName, lastName, employeeID, location, project){
      super(firstName, lastName, employeeID, location);
      this._project = project;
    }
  
    printPmInfo(){
      return `${super.printName} ${super.facilitatedBranch} my project is ${this._project}`
    }
  }
  
  let jhon = new ProjectManager('Jhon', 'Snow', 212 , 'Colombo', 'Blood Bank');
  console.log(jhon.printPmInfo());</code></pre>
  </div>
  </div>
  </p>
  <p>My expected output should be
  &quot;<em>Hello my name is Jhon Snow, my staff ID is 212 My branch is Colombo my project is blood bank</em>&quot;</p>