Во время изучения React обнаружил следующий код:
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
Почему перед this.tick()
стоят ()
? Если я правильно понимаю это такой вид обьявления анонимной функции? Но ведь setInterval
требует функцию на первом месте а tick()
это метод данного класса, то есть и является функцией.
Стрелочные функции
Выражения стрелочных функций имеют более короткий синтаксис по
сравнению с функциональными выражениями и лексически привязаны к
значению this (но не привязаны к собственному this, arguments, super,
или new.target).
Стрелочные функции всегда анонимные.
this.timerID = setInterval(
() => this.tick(),
1000
);
практически эквивалентно
let that = this;
this.timerID = setInterval(
function () { return that.tick();},
1000
);
Зачем нужно объявлять анонимную функцию для вызова другой функции?
Так короче, удобнее и нагляднее.
Другим корректным вариантом было бы setTimeout(this.tick.bind(this), 1000)
, иначе внутри tick не будет доступен объект по this. Это же метод объекта, не просто функция.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ребята, что нужно дописать, что бы передача параметров не могла начинаться с &, как во втором примере?
Добрый вечер, есть два массива, нужно сделать один массив, но чтобы значения не совпадали, те