Когда я должен использовать функции Arrow в ECMAScript 6?

Вопрос адресован людям, которые думали о стиле кода в контексте готовящегося ECMAScript 6 (Harmony) и уже работали с языком.

С() => {} а такжеfunction () {} мы получаем два очень похожих способа написания функций в ES6. В других языках лямбда-функции часто отличаются анонимностью, но в ECMAScript любая функция может быть анонимной. Каждый из двух типов имеет уникальные домены использования (а именно, когдаthis должен быть связан явно или явно не связан). Между этими доменами существует огромное количество случаев, когда подойдет любая нотация.

Функции стрелок в ES6 имеют как минимум два ограничения:

Не работать сnewИсправленаthis связан с областью при инициализации

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

«везде, где они работают», то есть везде, где функция не должна быть агностикомthis переменная, и мы не создаем объект.только «везде, где они нужны», то есть прослушиватели событий, тайм-ауты, которые должны быть связаны с определенной областью действияс «короткими» функциями, но не с «длинными» функциямитолько с функциями, которые не содержат другую функцию стрелки

То, что я ищу, - это руководство по выбору соответствующей функциональной нотации в будущей версии ECMAScript. Руководство должно быть четким, чтобы его можно было преподавать разработчикам в команде, и быть последовательным, чтобы не требовало постоянного рефакторинга назад и вперед от одной записи функции к другой.

Ответы на вопрос(7)

Ваш ответ на вопрос