Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляет доку «Стрелочные функции» #5119

Conversation

alexafcode
Copy link
Contributor

@alexafcode alexafcode commented Jan 12, 2024

Описание

Добавляет доку про стрелочные функции.

Чек-лист

  • Текст оформлен согласно руководству по стилю
  • Ссылки на внутренние материалы начинаются со слеша и заканчиваются слэшем либо якорем на заголовок (/css/color/, /tools/json/, /tools/gulp/#kak-ponyat)
  • Ссылки на картинки, видео и демки относительные (images/example.png, demos/example/, ../demos/example/)

@github-actions github-actions bot added js Контент по JavaScript дока Справочный материал labels Jan 12, 2024
@TatianaFokina TatianaFokina changed the title добавляет ответ на вопрос Что такое стрелочные функции (Arrow Functions)? Добавляет ответ на вопрос «Что такое стрелочные функции (Arrow Functions)?» Jan 15, 2024
@TatianaFokina TatianaFokina added the собеседование Контент для На собеседовании label Jan 15, 2024
@skorobaeus
Copy link
Member

Привет! Спасибо за материал!

Помоги, плиз, определить, это ответ на вопрос для рубрики "На собесе" или полноценная дока? В ответах на вопрос мы не пишем "Как понять, как пишется", а стараемся отвечать кратко, примерно так, как отвечали бы, если и правда услышали этот вопрос на собесе :)

@alexafcode
Copy link
Contributor Author

Добрый день. Вообще, я думаю, что это дока по теме.

@skorobaeus skorobaeus changed the title Добавляет ответ на вопрос «Что такое стрелочные функции (Arrow Functions)?» Добавляет доку «Стрелочные функции» Jan 16, 2024
@skorobaeus skorobaeus added статья Расширенный материал and removed собеседование Контент для На собеседовании labels Jan 16, 2024
Copy link

github-actions bot commented Jan 16, 2024

Чек-лист для новой доки

Метаданные

  • Код в поле title завёрнут в бэктики
  • Есть поле description с описанием
  • Проставлен тег doka
  • Поле keywords содержит ключевые слова, которых нет в тексте статьи
  • В поле authors указан автор. Файл автора есть в папке people
  • В поле related есть три ссылки на материалы Доки, интересные в контексте данного

Дока

  • Структура совпадает с шаблоном
  • Демки написаны по рекомендациям
  • У картинок есть описание в alt, у фреймов демок название в title
  • Дока добавлена в содержание раздела
  • Для доки указаны материалы Доки, интересные для дальнейшего чтения

@skorobaeus skorobaeus removed the статья Расширенный материал label Jan 16, 2024
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
alexafcode and others added 2 commits February 13, 2024 15:32
Co-authored-by: Sergey Sadovnikov <71886074+ScrabyQ@users.noreply.github.com>
Co-authored-by: Sergey Sadovnikov <71886074+ScrabyQ@users.noreply.github.com>
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
js/arrow-function/index.md Outdated Show resolved Hide resolved
@alexafcode
Copy link
Contributor Author

Привет. @HellSquirrel вроде поправил все.

@HellSquirrel
Copy link
Member

Спасибо большое, очень круто. Мы сейчас немножко отредачим и опубликуем
@TatianaFokina и @solarrust поможете с редактурой?)

@skorobaeus
Copy link
Member

Чекнула правописание. Есть ощущение, что список в "Как понять" лучше оформить не списком, а текстом с подзаголовками (регулярно возвращается эта тема).

@splincool
Copy link
Contributor

Всем, привет!
докину одну мыслишку по плюсам стрелочных функций, а вы решите нужна она или нет :)

до появления стрелочных функций, когда была ситуация, что нужно было в одном контексте вызывать функцию, которая принимала в качестве параметра callback-функцию (у которой был свой контекст), например как с setTimeout

const obj = {
  count: 10,
  doSomethingLater() {
    setTimeout(function () {
      this.count++;
      console.log(this.count);
    }, 1000);
  },
};

obj.doSomethingLater(); // "NaN"

то внутри callback-а контекст в котором была вызвана функция setTimeout терялся, т.е. внутри callback мы уже не могли достучаться до this.count так как this ссылался на объект Window, а не на obj

поэтому приходилось разными способами прокидывать контекст внутрь callback-а

например, при помощи bind(this), что было еще вполне порядочно

const obj = {
  count: 10,
  doSomethingLater() {
    setTimeout(function () {
      this.count++;
      console.log(this.count);
    }.bind(this), 1000);
  },
};

obj.doSomethingLater(); // 11

Также был знаменитый хак c that, когда создавалась временная переменная that, в которую сохранялся контекст this и внутри callback-а уже использовался that

const obj = {
  count: 10,
  doSomethingLater() {
    const that = this;
    setTimeout(function () {
      that.count++;
      console.log(that.count);
    }, 1000);
  },
};

obj.doSomethingLater(); // 11

А с появлением стрелочных функций, которые стали использоваться в качестве callback-ов, теперь не нужно ничего изобретать и прокидывать контекст внутрь callback-а, так как стрелочная функция берет его снаружи где вызывается

const obj = {
  count: 10,
  doSomethingLater() {
    setTimeout(() => {
      this.count++;
      console.log(this.count);
    }, 1000);
  },
};

obj.doSomethingLater(); // 11

@HellSquirrel
Copy link
Member

@splincool отличная мысль. Если хочешь мы чуть позже сами это добавим, но если хочется, то статью можешь дополнить ты :) У нас есть вот такая функциональность

@HellSquirrel HellSquirrel merged commit dfd50b7 into doka-guide:main Mar 27, 2024
6 checks passed
Copy link

Превью контента из 0a7cc8c опубликовано.

@splincool
Copy link
Contributor

@splincool отличная мысль. Если хочешь мы чуть позже сами это добавим, но если хочется, то статью можешь дополнить ты :) У нас есть вот такая функциональность

Спасибо :)
Могу сам попробовать дополнить, это интересно

@splincool
Copy link
Contributor

@HellSquirrel
После мерджа на проде внизу статьи висят заголовки без текста под ними, посмотри, пожалуйста, это так и задумывалось?

Снимок экрана 2024-03-28 в 08 58 23

@TatianaFokina
Copy link
Member

@HellSquirrel После мерджа на проде внизу статьи висят заголовки без текста под ними, посмотри, пожалуйста, это так и задумывалось?

Что-то пошло не так с форматированием. Сейчас принесу пиар.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js Контент по JavaScript дока Справочный материал
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants