在知道jQuery.Callbacks()方法之前,碰见这样一个场景:
现有A、B、C3个模块, 分别写为3个js同名文件,由3个人分别开发。A和B完全独立,但是都依赖于C中一个ajax的回调数据。应对这种情况,于是写了一个ActionSets的对象,用于多个action的注册添加,与指定的时间地点触发执行 。使用的时候,在A、B分别注册一个Action,然后在C中的ajax回调中去统一执行这些Actions。
当时有两种设计想法,基于Object的key-value形式,一种是可以执行指定的Actions(action亦即callback一样的概念),但不能往Action内传参数,一种是只能执行全部的Actions,但是可以往每个Action传入参数。
因为需求中依赖C的ajax数据是存入cookies的,所以采用了第一种设计,看如下源码可以看出来: