Diğer cevaplar malzemelerinin hiçbiri orijinal argümanlar olduğunu çok açıklama vardır ancak orijinal konumunda, hala kullanılabilirarguments
nesne.
arguments
Nesne işlevine mesafede her gerçek parametre için bir eleman içerir. Aradığınızda a
numaraları: Eğer üç argüman tedarik 1
, 2
ve, 3
. Yani, arguments
içerir [1, 2, 3]
.
function a(args){
console.log(arguments) // [1, 2, 3]
b(arguments);
}
Aradığınızda b
, ancak, tam olarak geçmesi bir argüman: a
'in arguments
nesne. Yani arguments
içerir [[1, 2, 3]]
(yani bir element, a
'in arguments
özgün argümanlar içeren özelliklere sahip bir amacı, a
).
function b(args){
// arguments are lost?
console.log(arguments) // [[1, 2, 3]]
}
a(1,2,3);
@ Nick'in gösterdiği gibi, apply
bir set sağlamak için kullanabilirsinizarguments
çağrıda nesne .
Aşağıdakiler aynı sonucu verir:
function a(args){
b(arguments[0], arguments[1], arguments[2]); // three arguments
}
Ancak apply
genel durumda doğru çözümdür.
arguments
bunun aslında bir dizi olmadığını (daha ziyade dizi benzeri anlambilimi uygulayan bir nesne ) ve bu nedenle ilk bakışta gerçek bir dizi ile aynı şekilde kullanılıp kullanılamayacağını tamamen açık olmadığını unutmayın.