JavaScript中的包装函数语法无效吗?

时间:2014-01-02 07:50:29

标签: javascript

this article中,回复者为问题提供了正确且结构良好的解决方案。

但是,他还辩称,建议的方法(即为回调函数制作包装器)不是有效的JavaScript。这引出了三个问题。

  1. 是这样吗?

  2. 如果应用会发生什么不好的事情?

  3. 解决该问题的有效JavaScript是什么?

2 个答案:

答案 0 :(得分:5)

...是无效的语法。有两种解决方案:

首先,您可以手动列出很多参数:

callback: function (jq1, jq2, jq3, jq4, jq5, jq6) {
  return pageselectCallback(your1, your2, jq1, jq2, jq3, jq4, jq5, jq6);
}

如果有六个以上的参数,这当然不会起作用。要解决此问题,您可以使用.apply方法,该方法采用一系列参数:

callback: function () {
    return pageselectCallback.apply(null, 
        Array.prototype.concat.call([your1, your2], arguments));
}

答案 1 :(得分:2)

答案中的示例代码无效。 (, ...,
但解决方案是有效的。