Ich gehe durch John Resig ausgezeichnete Advanced javascript tutorial und ich verstehe nicht gründlich, was ist der Unterschied zwischen den folgenden Aufrufe: (Bitte beachten Sie, dass 'Argumente' ist ein eingebautes Javascript Wort und ist nicht gerade ein Array daher mit dem Array.slice des Hacking, anstatt einfach Aufruf arguments.slice)Unterschied zwischen Array.slice und Array(). 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
im Grunde kocht mein Missverständnis zwischen Array.slice der Differenz nach unten und Array(). Slice. Was genau ist der Unterschied zwischen diesen beiden und warum verhält sich Array.slice.call nicht wie erwartet? (was alles außer dem ersten Element der Argumentenliste zurückgibt).
Ich weiß nicht, wie es sich in '08 Browsern verhalten hat, aber seit Anfang 2013 wirft 'String.substring.call' einen TypeError in Chrome (da der' String' Konstruktor keine 'substring' Eigenschaft hat) . – bfavaretto
@bfavaretto, Firefox (allein) implementiert 'Array.slice' und' String.substring'. Der Fragesteller benutzte zweifellos Firefox, als er das ausprobierte. –
Danke für die Info, @NathanWall. Das ist ziemlich seltsam von Firefox, wahrscheinlich etwas, das sie als eine Abkürzung zu "String.prototypeString" et al. aus Gründen der Abwärtskompatibilität ... und es scheint, dass es für eine Weile anhielt. – bfavaretto