В чем прикол стрелочных функций в js?

Купить VPN
Профессиональная разработка сайта
Единая ссылка на ваши профили! [+]
Печать / RSS
8


Пришелец
0
Всем привет. Начал изучать js на html академии. Там заставляют писать стрелочные функции. Но я до сих пор не могу понять чем стрелочные функции лучше обычных? Может кто подсказать? baby.gif

Господин ПЖ
0
Ну вроде как ничем не лучше, просто синтаксис короче

Это как в php
$fn = fn($x) => $x + $y;
// эквивалентно
$fn = function ($x) use ($y) {
return $x + $y;
};
Плюс ещё и в том, что $y прокидывать не нужно

Пацак
0
Программист из тебя выйдет такой себе, т.к. гуглить к сожалению не умеем ).gif
https://learn.javascript.ru/arrow-functions-basics

Малиновые штаны
0
Самое основное преимущество стрелочных функций над обычными - это область видимости окружающего контейнера.

Для примера набросал самый простой скрипт:
var Obj = {
data: 'Тест 1',
getOne: function() {
return () => {
alert(this.data+', '+[...arguments].join(', '));
}
},
getTwo: function() {
return function() {
alert(this.data+', '+[...arguments].join(', '));
}
}
};

/** вернет "Тест 1, Тест 2, Тест 3, Тест 4",
* т.к. у стрелочной ф-ии есть полный доступ к внешнему окружению **/
Obj.getOne('Тест 2', 'Тест 3', 'Тест 4')();

/** вернет "undefined" для this.data,
* а на конструкцию [...arguments] вообще ругнется,
* т.к. в ним нет никакого доступа **/
Obj.getTwo('Тест 2', 'Тест 3', 'Тест 4')();

В моем примере стрелочная ф-я в THIS вернет объект Obj (контейнер окружения стрелочной ф-ии), а в обычной ф-ии THIS вернет объект самой функции.

В Vue.js вообще крайне рекомендовано использовать стрелочные ф-ии, чтобы получить доступ к this, через который происходит обращение к переменным и пользовательским функциям окружения.
Изменил: Дмитрий (13.08.2020 / 01:21)

Пришелец
0
@erasier, возможно, когда я стану хорошим специалистом, я буду так же говорить, позабыв о том какие трудности обучения у самого были))
Я гуглил про стрелочные функции) Многие пишут, что их лучше использовать и это вызвало вопрос "Чем?") как в анекдоте:
Едут грузин и армянин в поезде. И армянин говорит грузину:
—Армяне лучше чем грузины.
—Чем? - спокойно спрашивает грузин.
Армянин снова повторяет:
—Армяне лучше чем грузины..
Грузин немного уже напрягся и опять спрашивает —чем?
Армянин опять повторяет:
—Армяне лучше чем грузины.
Тут у грузина кровь закипает и в криках спрашивает:
—Чем?! Вот чем лучше?!
—Чем грузины — отвечает армянин.
Вот и я где не читал про то чем стрелочные функции лучше, пишут что впринцепе одно и то же, только короче и лучше чем обычные функции. Чем лучше? Чем обычные функции. D.gif

Пацак
0
@TimSawyer, чем лучше - тем что короче, наверное ).gif . Где ты читал, непонятно. Вот тут же написано, первый сайт из гугла
https://learn.javascript.ru/arrow-functions
Короче, тут надо сначала гугл осваивать, а потом уже плавно к изучению js приступать D.gif
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск