В ES6 добавлены функции жирной стрелки ( =>
), которые имеют два основных отличия от обычных функций:
- более короткий синтаксис (включая неявный возврат, если вы используете тело с одним выражением)
- наследовать
this
от окружающей области
Обе эти функции очень полезны, но мне кажутся совершенно разными по своей ценности и применению - иногда я хочу одну или другую, или обе, или ни одну. Кажется странным, что если я хочу использовать функцию с коротким синтаксисом, я должен также использовать this
поведение -modifying. И наоборот. Я не понимаю, почему эти две возможности реализованы как одно дополнение к языку.
Что если я хочу использовать функцию короткого синтаксиса для ее неявного возврата и краткости (в некотором контексте, где заполнение function (..) { return ...}
будет немного менее читабельным), но я хочу использовать this
в своей функции ссылку на контекст вызова? Там нет никакого способа сделать это.
У CoffeeScript есть ->
и =>
функции стиля, и, очевидно, ES6 заимствовал =>
стиль оттуда. Итак, мой вопрос: почему ES6 также не позаимствовал ->
стиль?
this
к замыканию в полном объявлении функции. Возможно, это не та часть, которая вас беспокоит.
arguments
.