Istilah "operator percikan" berasal dari Ruby, di mana *
karakter (kadang-kadang disebut "percikan" —lihat entri File Jargon ) digunakan untuk menunjukkan bahwa entri dalam daftar argumen harus "menyerap" daftar argumen.
CoffeeScript mengadopsi lingkar Ruby-gaya yang sangat dini (lihat masalah 16 ), tetapi pada saran Douglas Crockford, sintaks berubah dari *x
ke x...
beberapa minggu kemudian (lihat masalah 45 ). Namun demikian, CoffeeScripters masih mengacu pada sintaks sebagai "splat" atau "splat operator."
Mengenai apa yang sebenarnya mereka lakukan, percikan mengiris arguments
objek sedemikian rupa sehingga argumen yang dicipratkan menjadi larik dari semua argumen "ekstra". Contoh paling sepele adalah
(args...) ->
Dalam hal ini, args
hanya akan menjadi salinan array arguments
. Argumen percikan bisa muncul sebelum, sesudah, atau di antara argumen standar:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
Dalam dua kasus pertama, jika fungsi menerima 0-1 argumen, rest
akan menjadi array kosong. Dalam kasus terakhir, fungsi perlu menerima lebih dari 2 argumen rest
agar tidak kosong.
Karena JavaScript tidak mengizinkan banyak tanda tangan untuk fungsi dengan nama yang sama (seperti yang dilakukan C dan Java), percikan adalah penghemat waktu yang sangat besar untuk menangani berbagai jumlah argumen.
arguments
+call
: stackoverflow.com/questions/17380315/…