При написании класса Typescript, такого как:
class Foo {
bar() { }
}
Иногда полезно переписать это как:
class Foo {
bar = () => { }
}
Основная причина заключается в том, что я могу передать bar в качестве обратного вызова для что-то еще, но сохраните ссылку this
.
Однако это выглядит немного «странно». Функции и свойства имеют свой собственный синтаксис, и использование синтаксиса свойств для функции создает ощущение, что я поступаю неправильно.
Хотя преимущества очевидны. Обычно вы хотите, чтобы this
ссылался на текущий экземпляр класса, поэтому в этом отношении он выглядит так, как будто, по умолчанию / вменяемое поведение , если вы не хотите this
Быть связанным заново явно. Однако такая ситуация настолько редка, что, если бы я захотел использовать это поведение, я бы, вероятно, вообще оставил эти функции вне классов.
Так что мой вопрос: есть ли веские причины для , а не сделай это? Должны ли мы просто всегда использовать функции стрелок и отказаться от повторного связывания this
, если это явно не требуется?