Итак, я писал функцию, которая принимала бы аргумент (другую функцию), которой, когда она не определена, было бы присвоено значение по умолчанию. Назначение этого значения по умолчанию как ()=>{}
, похоже, не работает. Однако, когда я оборачиваю функцию по умолчанию в (()=>{})
или пишу обычную function()
, кажется, что все работает нормально. Что-то вроде этого кода ниже:
Не работает
const f1 = f2 => {
f2 = f2 || () => alert("No default Listeners defined!");
}
Работающий
const f1 = f2 => {
f2 = f2 || (() => alert("No default Listeners defined!"));
}
const f3 = f2 => {
f2 = f2 || function() {
alert("No default Listeners defined!")
};
}
Могу ли я получить объяснение, почему первый не работает, а следующие 2 работают? Я подозреваю, что это может быть связано с объявлением функции V выражением функции и Я немного искал это, но не нашел правильного объяснения. Ссылки на то же самое будет достаточно. Спасибо.
f2 = (f2 || ()) => alert("No default Listeners defined!");
- person Barmar   schedule 07.07.2019f2 || ()
считается списком аргументов для=>
(определение функции стрелки), поэтому вы получили эту ошибку. - person Styx   schedule 07.07.2019f2 = f2 || _ => alert
тоже может работать - person Slai   schedule 07.07.2019