2011-12-29 9 views
5

uczę JavaScript i jestem obecnie próbuje dowiedzieć się, dlaczego (w Spidermonkey)zastosować funkcję w JavaScript

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

powraca oczekiwana [1, 2], ale

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

powraca [2] zamiast [1, 2].

Czy ktoś może podać dobre wyjaśnienie?

+1

Co zwróci 'Array.prototype.concat.apply ([1], [[2]])? – Pointy

+1

Z której przeglądarki korzystasz? 'Array.concat' nie istnieje w Chrome. –

+0

Firefox ma "concat()" na prototypie Array (ale nie na obiekcie konstruktora Array). – Pointy

Odpowiedz

8

[].concat to Array.prototype.concat.

Array.concat to statyczna metoda typu "tylko Firefox" łącząca jedną lub więcej tablic i ignorująca jego argumenty: this.

+1

To musi być odpowiedź, ale co ciekawe MDN nie dokumentuje tej metody :-) – Pointy

+0

Tak; Zauważyłem ... – SLaks

+0

Który styl jest preferowany, '[] .concat' lub' Array.prototype.concat'? – eljenso

Powiązane problemy