2011-12-29 17 views
5

estoy aprendiendo JavaScript y actualmente estoy tratando de averiguar por qué (en Spidermonkey)aplicar la función de JavaScript

[].concat.apply([1], [[2]]) 

devuelve la espera [1, 2], pero

Array.concat.apply([1], [[2]]) 

vuelve [2] en lugar de [1, 2].

¿Podría alguien dar una buena explicación?

+1

¿Qué devuelve 'Array.prototype.concat.apply ([1], [[2]])' return? – Pointy

+1

¿Qué navegador estás usando? 'Array.concat' no existe en Chrome. –

+0

Firefox tiene un "concat()" en el prototipo Array (pero no en el objeto constructor Array). – Pointy

Respuesta

8

[].concat es Array.prototype.concat.

Array.concat es un método estático de Firefox que concatena una o más matrices e ignora su argumento this.

+1

Esta tiene que ser la respuesta, pero curiosamente MDN no documenta ese método :-) – Pointy

+0

Sí; Me di cuenta ... – SLaks

+0

¿Qué estilo es el preferido, '[] .concat' o' Array.prototype.concat'? – eljenso

Cuestiones relacionadas