回调函数是作为参数传入并由其他函数在适当时机调用的普通函数,用于支持异步操作和事件驱动;常见于addEventListener、setTimeout、Promise等API中。
JavaScript 中函数定义很简单,回调函数本质上也是函数,特别之处在于“谁调用它”和“什么时候调用它”。
JavaScript 支持多种函数定义语法,核心都是创建可执行的代码块:
function 关键字开头,会被提升(hoisted),可在定义前调用。
i = function(name) { return 'Hi, ' + name; };
this、arguments,也不能用作构造函数。所谓“回调”,是指把一个函数作为参数传给另一个函数,并由后者在合适时机主动执行它。它没有语法上的特殊标记,只是一种设计模式。
setTimeout、map、fetch().then()、Promise 链中的 then 和 catch。回调看着简单,但容易出错,尤其涉及异步和作用域时:
Promise 或 async/await 平铺逻辑。this 指向:普通函数作为回调传入时,this 可能丢失,可用箭头函数或 .bind() 固定。你定义函数,但不决定它何时运行——把执行权交给另一个函数或系统。这种“我准备好了,你看着办”的协作方式,正是 JavaScript 灵活性和响应能力的基础。