所以说我有$。员额功能的阵列
var pa = [$.post(url0), $.post(url1),......];
$.when(pa[0],pa[1],...]) // works as expected
但
$.when.apply(pa) // does not work
所以说我有$。员额功能的阵列
var pa = [$.post(url0), $.post(url1),......];
$.when(pa[0],pa[1],...]) // works as expected
但
$.when.apply(pa) // does not work
Function.prototype.apply
需要背景作为第一个参数(其用作this
参考对象,在被调用的函数)
所以,你可以这样调用它
$.when.apply(null, pa);
我喜欢用有点“挂羊头卖狗肉”,以避免每次。我们可以调用Function.prototype.bind
像
var when = Function.prototype.apply.bind(jQuery.when, null);
现在,我们的确可以称之为
when(pa).done(/* ... */) { }
你应该使用:
$.when.apply($, pa);
apply
的第一个参数是应该调用该函数的上下文(即,在该上下文中意味着什么this
e功能)。第二个参数是一个包含函数参数的数组。