You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CoffeeMachine类构造函数map返回箭头函数中coffee参数来源问询

这个coffee参数来自两个场景:

  1. 责任链第一个处理函数的coffee参数
    是processCoffee方法主动传入的this.coffeeCup对象,对应代码:
processCoffee() {
    this.handlers[0](this.coffeeCup);
}

你实例化CoffeeMachine时传入的配料列表,或者调用setNewIngredients更新后的配料,都会存在这个coffeeCup对象里,作为初始值传递给责任链的第一个处理函数。

  1. 责任链后续所有处理函数的coffee参数
    是前一个处理函数调用next时传入的同一个对象:
    构造函数中map遍历的时候,给每个原始处理逻辑都包了一层箭头函数,调用原始处理逻辑时会把下一个包装后的箭头函数作为第二个参数next传进去。每个原始处理逻辑完成操作后都会调用next(coffee),这里传入的coffee就会作为下一个箭头函数的coffee参数输入。

整个逻辑是典型的责任链模式,同一个咖啡杯对象在整条处理链路里透传,每个步骤给它追加对应的属性标记,最后到resultHandler输出最终结果。

内容的提问来源于stack exchange,提问作者tester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:45:00