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

包装函数语法在JavaScript中无效吗?,javascript,Javascript,在这种情况下,回复者为问题提供了正确且结构良好的解决方案 然而,他也认为建议的方法(即为回调函数制作包装器)不是有效的JavaScript。这就引出了三个问题 是这样吗 如果应用,会发生什么不好的事情 解决这个问题的有效JavaScript是什么 答案中的示例代码无效。(,…,) 但是解决方案是有效的。语法无效。…。有两种解决方案: 首先,您可以手动列出许多参数: callback: function (jq1, jq2, jq3, jq4, jq5, jq6) { return pages

在这种情况下,回复者为问题提供了正确且结构良好的解决方案

然而,他也认为建议的方法(即为回调函数制作包装器)不是有效的JavaScript。这就引出了三个问题

  • 是这样吗

  • 如果应用,会发生什么不好的事情

  • 解决这个问题的有效JavaScript是什么


  • 答案中的示例代码无效。(
    ,…,


    但是解决方案是有效的。

    语法无效。…。有两种解决方案:

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

    callback: function (jq1, jq2, jq3, jq4, jq5, jq6) {
      return pageselectCallback(your1, your2, jq1, jq2, jq3, jq4, jq5, jq6);
    }
    
    callback: function () {
        return pageselectCallback.apply(null, 
            Array.prototype.concat.call([your1, your2], arguments));
    }
    
    如果有六个以上的参数,这当然不起作用。要解决此问题,可以使用该方法,该方法接受一组参数:

    callback: function (jq1, jq2, jq3, jq4, jq5, jq6) {
      return pageselectCallback(your1, your2, jq1, jq2, jq3, jq4, jq5, jq6);
    }
    
    callback: function () {
        return pageselectCallback.apply(null, 
            Array.prototype.concat.call([your1, your2], arguments));
    }
    

    他只是说,“不要复制和粘贴它,因为这只是一个可以构建的示例”。我认为主要的一点是,有很多不同的方法来声明函数,他选择了“原型”样式的方法,您可能不需要使用它。@Deryck哦,我的。。。很明显,我会以慢节奏开始新的一年。。。但是当然!另一方面,这意味着他提供了一种方法和解决方案方向。不是要粘贴的实际代码。OP需要自己做一些工作,对吗?:)@johnnycardy还有什么其他方法可以做到这一点呢?但实际上-+1是因为在Stackoverflow上只正确使用了英语。结果是
    [1,2]。concat(arguments)
    为您提供了
    [1,2,arguments]
    。哎呀。
    arguments
    对象的行为异常。您可以简化对
    [].concat.apply([y1,y2],arguments)的concat调用。
    更新以修复注释:)