假设我有一个如下的 javascript 函数:
myFunction: function(data, callback){
//Do stuff
}
假设我现在想向此函数添加另一个参数。让我们打电话 if flag
。我也不想到处更改函数调用。在我看来,大多数 javascript 函数都将它们的回调作为最后一个参数。这是否意味着我应该像这样改变函数:
myFunction: function(data, flag, callback){
//Do stuff
}
还是像这样改变它更好:
myFunction: function(data, callback, flag){
//Do stuff
}
第一种方法允许回调在最后,但如果我走这条路线,我需要添加一些东西来处理所有将回调作为第二个参数传回的旧调用。就像是:
if (_.isFunction(flag)) {
onComplete = flag;
return retAll = false;
}
第二种方法看起来有点奇怪,需要我做这样的事情来处理不包含第三个参数的旧调用:
if (flag == null) {
flag = false;
}
在这种情况下,是否有一种普遍接受的方式来处理参数的顺序?另外,我是否应该只跟踪对函数的所有调用并更改传入的参数而不是在函数本身中处理它?