Области видимости JS. Различие между ES6 () =>{} и function() [дубликат]

305
30 ноября 2017, 03:54

На данный вопрос уже ответили:

  • Потеря контекста вызова 5 ответов

В чем различие между (someVal) => {DoSomething} и function(someVal){DoSomething} ?

Проявилось вот в этом куске кода

let latestNews = $('.time-articles');
        latestNews.find('.article.text_bold').each(() => {
        time = $(this).find('.article__time').text()}

В этом случае this - это window

Если заменить на function() - то приходят найденные элементы

let latestNews = $('.time-articles');
        latestNews.find('.article.text_bold').each(function () {
        time = $(this).find('.article__time').text()}
Answer 1

Стрелочная функция всегда привязывается к тому контексту, в котором она находится.

В Вашем случае this нужно заменить на latestNews.

Можно переписать Ваш код так:

let latestNews = $('.time-articles');
    latestNews.find('.article.text_bold').each(() => {
    time = $(latestNews).find('.article__time').text()}
Answer 2

Выражения стрелочных функций имеют более короткий синтаксис по сравнению с функциональными выражениями и лексически привязаны к значению this (но не привязаны к собственному this, arguments, super, или new.target). Стрелочные функции всегда анонимные

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions

READ ALSO
Как подменить User-Agent?

Как подменить User-Agent?

Как с помощью своего расширения подменить User-Agent?

293
3d эффекты перехода на slick slider

3d эффекты перехода на slick slider

ЗдравствуйтеИспользую плагин http://kenwheeler

504
Как перевести телефоны вида +79031559499 к виду +7 (930) 383-88-33?

Как перевести телефоны вида +79031559499 к виду +7 (930) 383-88-33?

Как перевести телефоны вида +79033838833 к виду  +7 (930) 383-88-33?

227
Ошибка is not a function

Ошибка is not a function

Выдаёт ошибку: appconfigure is not a function

263