наткнулась на пример вызова функции вот таким образом: foo ()();
еще видела где-то подобное но уже с аргументами, т.е. например foo(1)(2)(3);
www.youtube.com/watch?v=N09Ljaaexqk первый пример из вот этого видео, там автор вроде как объяснил что это связано с тем что таким образом первая скобочка вызовет саму функцию, а вторая - функцию которая возвращается внутри внешней функции. не поняла, как это вообще? как работает? конкретного описания про такую запись в учебниках не видела, загуглить не вышло. есть ли в этом какой-то практический смысл, не абстрактный? за любую инфу и ссылки - огромная благодарность!
поиски и вопросы всем подряд показали что это каррирование
еще видела где-то подобное но уже с аргументами, т.е. например foo(1)(2)(3);
www.youtube.com/watch?v=N09Ljaaexqk первый пример из вот этого видео, там автор вроде как объяснил что это связано с тем что таким образом первая скобочка вызовет саму функцию, а вторая - функцию которая возвращается внутри внешней функции. не поняла, как это вообще? как работает? конкретного описания про такую запись в учебниках не видела, загуглить не вышло. есть ли в этом какой-то практический смысл, не абстрактный? за любую инфу и ссылки - огромная благодарность!


Можно разбирать просто по очереди - foo() возвращает функцию, которую можно позже выполнить. И эту функцию также можно выполнить. И так можно вложенность сделать очень длинной, зависит от задачи.
Можно записать так
var func1 = foo(); //в func1 лежит уже функция
var func2 = func1(); //исполняем func1 которая тоже вернула допустим функцию. записали её в func2;
func2();
а в сокращённом виде всё что выше можно записать просто как foo()()() - т.е. сначала выполнится foo(), потом то что вернулось из foo, а потом то что вернулось из функции которая вернулась из foo. Надеюсь так чуть понятней )
foo(1)(2)(3); — может быть каррированием, но вопрос, как я понимаю, не совсем о том
(function() {})() — синтаксическая конструкция js, самовызывающаяся функция