2011-12-29 25 views
5

sto imparando Javascript e attualmente sto cercando di capire il motivo per cui (in Spidermonkey)applicare la funzione in JavaScript

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

torna l'atteso [1, 2], ma

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

rendimenti [2] invece di [1, 2].

Qualcuno potrebbe fornire una buona spiegazione?

+1

Cosa restituisce 'Array.prototype.concat.apply ([1], [[2]])'? – Pointy

+1

Quale browser stai utilizzando? 'Array.concat' non esiste in Chrome. –

+0

Firefox ha un "concat()" sul prototipo Array (ma non sull'oggetto costruttore Array). – Pointy

risposta

8

[].concat è Array.prototype.concat.

Array.concat è un metodo statico solo per Firefox che concatena uno o più array e ignora l'argomento this.

+1

Questa deve essere la risposta, ma curiosamente MDN non documenta tale metodo :-) – Pointy

+0

Sì; Ho notato ... – SLaks

+0

Quale stile è preferito, '[] .concat' o' Array.prototype.concat'? – eljenso

Problemi correlati