Diferencia entre Array.slice y Array (). Slice
Estoy pasando por la excelente de John Resig.Tutorial avanzado de javascript y no entiendo bien cuál es la diferencia entre las siguientes llamadas: (tenga en cuenta que 'argumentos' es una palabra javascript integrada y no es exactamente una matriz, por lo tanto, la piratería con Array.slice en lugar de simplemente llamar a argumentos.slice)
>>> arguments
[3, 1, 2, 3]
>>> Array.slice.call( arguments )
3,1,2,3 0=3 1=1 2=2 3=3
>>> Array.slice.call( arguments, 1 )
[]
>>> Array().slice.call( arguments )
3,1,2,3 0=3 1=1 2=2 3=3
>>> Array().slice.call( arguments, 1 )
1,2,3 0=1 1=2 2=3
Básicamente, mi malentendido se reduce a la diferencia entre Array.slice y Array (). ¿Cuál es exactamente la diferencia entre estos dos y por qué Array.slice.call no se comporta como se esperaba? (que está devolviendo todo menos el primer elemento de la lista de argumentos).