编辑:用他自己的话说:https ://twitter.com/fogus/status/393058344413302784
我正在阅读 Michael Fogus 的“Functional JavaScript”,并在第 5 章的开头看到了这个清单:
function dispatch(/* funs */) {
var funs = _.toArray(arguments);
var size = funs.length;
return function(target /*, args */) {
var ret = undefined; // <----------------------------------- ??
var args = _.rest(arguments);
for (var funIndex = 0; funIndex < size; funIndex++) {
var fun = funs[funIndex];
ret = fun.apply(fun, construct(target, args));
if (existy(ret)) return ret;
}
return ret;
};
}
如果这不是一个错误,为什么他明确定义ret
为undefined
?这样做的更一般的原因是什么?
提前致谢。