在jQuery.proxy中传递的附加参数的顺序是什么?

时间:2014-11-07 01:37:08

标签: jquery

JQuery提供了一个名为jQuery.proxy()的方法,允许用户将其他参数传递给原始调用者未提供的函数。但是,文档没有说明这些参数提供给接收函数的顺序。收货顺序是什么?

例如:

function f(a,b,c) {
   console.log(a,b,c);
}

var p = jQuery.proxy(f, null, 1, 2);
p(3);

a,b和c的值是什么?

1 个答案:

答案 0 :(得分:0)

jQuery.proxy()返回的新函数中显式传递的其他参数作为第一个参数传递给被调用函数。传递给代理函数调用的任何参数都遵循其他参数。因此,在问题中提出的代码中,结果输出将是:

1,2,3

这似乎是一个毫无意义的问题和答案,但同样有效的替代定义可能是实际参数首先出现在代理中,从而得到了可能的答案:

3,1,2

在使用代理功能超出控制范围的代理时需要小心。例如:

function myHandler(value1, value2, event) {
 ...
}
$("button").click($.proxy(myHandler, null, "value1", "value2"));
除了添加的参数之外,还需要

来捕获和处理event参数。