Изучаю JS по книге выразительный JS и столкнулся с непониманием в уроке про замыкания. Автор приводит такой пример:
function multiplier(x) {
return number => number * x;
}
let twice = multiplier(2);
console.log(twice(10));
Суть работы мне полностью понятна. Мне непонятно вот это:
number => number * 2;
. Что это за странное объявление функции? Сами стрелочные функции я понимаю. Но такого объявления в книге до этого момента не встречалось. Я, пытаясь разобраться, переписал код в таком формате:
function multiplier(x) {
return function(number) {
number * x;
}
}
let twice = multiplier(2);
console.log(twice(10));
Но в таком виде ничего не работает. Почему? Или замыкание может работать только через стрелочные функции только в таком формате?