以下代码有效,虽然我理解它为什么有效,但我在任何地方都没有看到它。我认为这是因为所有其他设计模式都好得多。
我仍然希望将这个例子视为一个警示故事,但我没有。
当然,这很糟糕,尤其是下面我选择的示例,因为它的作用很清楚,但是:
这种模式叫什么?
是常用的吗?
有没有使用这种模式的合法项目?
var add = function container (val) {
addFunc = function f (val, undefined) {
addFunc.total += val;
return addFunc;
};
addFunc.total = 0;
return addFunc(val);
};
alert(add(1)(2)(3).total);
alert(add(1)(2)(33).total);
编辑:变量名称更改,以便代码在 IE 中工作。