Можно ли использовать функции стрелок в определениях классов ES6? - PullRequest
2 голосов
/ 23 мая 2019

Можно ли технически использовать функции стрелок в определениях классов ES6? Меня не спрашивают, должны ли они быть, но могут ли они быть?

Мне было любопытно после прочтения его MDN статьи сказал, что они были ill suited as methods.

Если так, каков правильный синтаксис?

class someComponent extends React.Component {
  constructor(props) {
    super(props);
   }

  // arrow function here

  render () {
  }
}

1012 * Исследование *

Карри с функциями стрелки

1 Ответ

2 голосов
/ 23 мая 2019

Насколько я понимаю, правильный синтаксис отсутствует, потому что функция стрелки не дает никакой выгоды. Однако, если вам интересно, как вы могли бы включить функцию стрелки в свой класс хорошо ... Вот, пожалуйста:

class someClass {
  constructor() {
    this.myTestProperty = "fus ro dah";
    this.someArrowMethod = () => {
      console.log("Arrow Method: ", this.myTestProperty);
    };
  }

  method() {
    console.log("Normal Method: ", this.myTestProperty);
  }

  //ERROR: this is illegal in node v10 but webpack or typescript may be able to compile it correctly. 
  illegalArrowMethod = () => {

  }
}

const something = new someClass();

something.method();
something.someArrowMethod();

Как вы видите, правильный класс Свойства объекта по-прежнему доступны через ключевое слово this внутри обычного метода. Поэтому я не могу вспомнить вариант использования, почему вы бы использовали функцию стрелки внутри своего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...