TL; DR;
Array.prototype.slice.call(nodelist).filter
Metode slice () mengembalikan larik. Array yang dikembalikan itu adalah salinan dangkal dari koleksi (NodeList)
Jadi ini bekerja lebih cepat daripada Array.from ()
Jadi itu bekerja secepat Array.from ()
Elemen dari koleksi asli disalin ke dalam larik yang dikembalikan sebagai berikut:
- Untuk referensi objek (dan bukan objek sebenarnya), slice menyalin referensi objek ke dalam array baru. Baik array asli dan baru merujuk ke objek yang sama. Jika objek yang direferensikan berubah, perubahan tersebut terlihat oleh array baru dan asli.
- Untuk string, angka, dan boolean (bukan objek String, Angka, dan Boolean), slice akan menyalin nilai ke dalam array baru. Perubahan pada string, angka atau boolean dalam satu larik tidak mempengaruhi larik lainnya.
Penjelasan singkat tentang argumen
Array.prototype.slice (beginIndex, endIndex)
- mengambil args opsional beginIndex dan endIndex. Jika tidak tersedia, slice menggunakan beginIndex == 0, sehingga mengekstrak semua item dari koleksi
Array.prototype.slice.call (namespace, beginIndex, endIndex)
- mengambil sebuah objek sebagai argumen pertama. Jika kita menggunakan koleksi sebagai objek, itu secara harfiah berarti bahwa kita memanggil metode slice langsung dari namespace objek itu.slice ()
babel
, maka[...coll]
hanya akan memanggilArray.from(coll)
apa pun yang bukan fileArray
.