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).

Respuestas a la pregunta(6)

Su respuesta a la pregunta