我想要修改其用於apply()
傳遞數組成員函數通常預期任何數目的參數的一些現有的JavaScript代碼:如何在數組之前使用帶有額外參數的JavaScript「apply」方法?
oldFoo: function(arg /* , ..., argN */) {
...
}
var ary = ...
oldFoo.apply($, ary)
... other stuff using ary ...
新的代碼仍然需要任意數量的參數,我仍然有他們作爲一個數組來傳遞,但我也需要一個新的參數來傳遞數組
newFoo: function(someObject, arg /* , ..., argN */) {
...
}
var ary = ...
newFoo.apply($, ???, ary)
... other stuff using ary ...
所以我知道我可以做的ary
新版本與修改就地如陣列方法之前, pop
/push
/shift
/unshift
但我想用我的陣列做各種事情,所以不想修改它的地方。
我知道我可以通過預先設置someObject
來構建一個新的臨時數組,但似乎每次都需要多行代碼。
有沒有更具表現力的方式來實現我想要在相同數量的行中做什麼?我錯過了關於apply
或關於數組函數返回一個新數組而不是修改一個就地?我已經在使用jQuery,所以如果它有一些有用的東西,那麼香草JavaScript沒有那麼好,那也太好了。
'apply($,???,ary)'不會工作prepending(或appending)是你唯一的選擇我猜.. @David給出了一個很好的例子;) – VDP
@VDP: 「我的手是爲」不知道周圍某處真的發生了什麼「( - : – hippietrail
@大衛:我接受了我已經能夠測試的所有東西,但是我還沒有能夠經歷的許多事情 – hippietrail