所以說我有$。員額功能的陣列
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功能)。第二個參數是一個包含函數參數的數組。