我想知道是否有可能向库用户显示一个函数需要一个带有5个参数的回调,其中3个是数组(例如)。
或者换句话说,如何通知程序员不要弄乱回调参数?
这是一个代码示例:
function doSomething(someArray, callback) {
var i = 0;
for ( i = 0; i < someArray.length; i += 1) {
callback(someArray[i]);
}
}
程序员如何找出其回调函数应接受哪些参数?
最佳答案
Javascript没有类型检查参数,您无法对回调进行运行时检查以查看其期望的参数。您可以在运行时执行的一件事是,您可以检查callback.length
来查看已声明期望作为形式参数的多少个参数。函数不需要定义其形式参数,因为它也可以使用arguments对象获取参数,但是如果您要强制它们以某种方式编程,则可以通过这种方式进行检查。有关更多信息,请参见this doc。
最好的选择是好的文档,以使其绝对清楚(通常还带有示例代码)应如何编写回调。
如果您想稍微防弹库,则可以捕获回调中引发的所有异常并进行适当处理。
function doSomething(someArray, callback) {
var i = 0;
for ( i = 0; i < someArray.length; i += 1) {
try {
callback(someArray[i]);
} catch(e) {
// handle any exception in the callback
}
}
}