链式调用通过每个方法显式返回 this 实现,使 obj.method1().method2().method3() 成为可能;终结方法如 getResult() 通常返回结果而非 this 以终止链;它提升可读性,体现动作流、避免中间变量、逻辑顺序清晰;但过长链难调试,需控制长度并兼顾语义与错误处理。
JavaScript 的链式调用,是指在一个对象上调用一个方法后,该方法返回对象本身(this),从而可以
紧接着调用另一个方法,形成一连串的点号调用,比如 obj.method1().method2().method3()。
核心只有一条:每个参与链式的方法必须显式返回 this(当前实例)。
return this,就为下一次调用铺好路getResult() 或 show() 这类“终结方法”,通常不返回 this,而是返回计算结果或执行副作用,链式在这里自然终止它让代码更接近“动作流”的自然表达,把一系列相关操作组织成一条线性语句,而不是拆成多行赋值或重复引用。
let tmp = obj.add(5); tmp = tmp.multiply(2); ...,直接 obj.add(5).multiply(2).getResult()
链式虽好,但不是万能,用得不当反而影响调试和理解。
const a = obj.add(5);
const b = a.multiply(2);
const c = b.subtract(1);
validate().save().sendEmail() 看似流畅,但如果 save() 失败应中断后续,那就需要配合错误处理机制,不能只靠链式本身保证健壮性