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