Всем привет!
Есть промис с обработчиком .then, который выводит диалоговое окно с fulfilled-результатом:
let promise = new Promise(resolve => resolve('Done!')).then(result => alert(result)) // Done!
Метод .then принимает в качестве аргумента стрелочную функцию. В стрелочную функцию в качестве аргумента, в свою очередь, мы передаем result — значение, с которым промис был успешно выполнен.
А теперь слегка изменим код в части метода .then:
let promise = new Promise(resolve => resolve('Done!')).then(alert) // Done!
Сейчас в метод .then мы передали только функцию alert, но при этом в обоих случаях мы получаем одинаковый результат — вывод диалогового окна с сообщением «Done!».
Почему во втором случае в методе .then мы, не передав в alert аргумент в виде result, все равно получили его вывод? Метод .then каким-то образом скрыто передает этот аргумент в функцию? Или как работает эта магия?