Как добавить метод класса к прототипу в ES7 - PullRequest
0 голосов
/ 27 сентября 2019

Я запутался в одном из синтаксисов в ES7.Я определяю класс следующим образом:

class Employee2 {
  Ename = "Rahul";
  printName =  () => {
    console.log(this.Ename);
  }
}

Поскольку классы являются синтаксическим сахаром по сравнению с существующей концепцией прототипа, я ожидал, что метод printName фактически перейдет к прототипу функции.Но этого не произошло, метод является свойством объекта.

Однако, если я это сделаю:

class Employee {
  Ename = "Rahul";
  printName () {
    console.log(this.Ename);
  }
}

, это работает, как и ожидалось, когда printName переходит к прототипу. Теперь мой запрос:

ES7 предлагает использовать синтаксис, как в первом коде класса Employee2, если я использую это, я пропускаю определение метода в прототипе.Есть ли способ реализовать метод на прототипе функции?

1 Ответ

1 голос
/ 27 сентября 2019

ES7 предлагает использовать синтаксис, как в первом коде. Employee2 class

Нет.Используйте при необходимости.Я бы пошел со второй версией как можно чаще.Первая версия едва равна:

 function Employee2() {
   this.Ename = "Rahul";
   this.printName =  () => {
     console.log(this.Ename);
   };
 }
...