Diğer cevaplar malzemelerinin hiçbiri orijinal argümanlar olduğunu çok açıklama vardır ancak orijinal konumunda, hala kullanılabilirarguments nesne.
argumentsNesne işlevine mesafede her gerçek parametre için bir eleman içerir. Aradığınızda anumaraları: Eğer üç argüman tedarik 1, 2ve, 3. Yani, argumentsiç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 argumentsnesne. Yani argumentsiç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, applybir 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 applygenel durumda doğru çözümdür.
argumentsbunun 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.