如何将参数传递给此签名?

时间:2014-08-19 10:31:07

标签: javascript

我看到了一个JavaScript签名:

attachMetadataFailed(oData?, fnFunction, oListener?) 

现在我知道,第一个和最后一个参数是可选的。但强制性参数位于中间。

如果我不想设置可选参数,如何调用该函数? 我想当我使用attachMetadataFailed(function() {...})时,我将只访问第一个可选的参数?

2 个答案:

答案 0 :(得分:2)

在提供参数2但不提供参数1时,JavaScript没有提供调用函数的方法。

你可以:

显式传递未定义的值

foo(undefined, 123);

让函数检测对象类型

function foo (obj, func) {
    if (typeof func === "undefined" && typeof obj === "function") {
        func = obj;
        obj = undefined;
    }
    // etc
}

答案 1 :(得分:1)

我想这是一个第三方功能,你正在阅读它的文档。如果文档是真的,那么:

  • 如果您传递一个参数,它将被绑定到fnFunction
  • 如果您通过两个,则第一个将绑定到oData,第二个绑定到fnFunction
  • 如果您通过三个,则第一个将绑定到oData,第二个绑定到fnFunction,第三个绑定到oListener

因此attachMetadataFailed(myfn)的行为与attachMetadataFailed(undefined, myfn)相同。

是的,JavaScript可以管理它。请参阅Quentin答案,了解如何使用自己的功能。