คำว่า "ตัวดำเนินการ splat" มาจาก Ruby โดยที่*อักขระ (บางครั้งเรียกว่า "splat" - ดูรายการ Jargon File ) เพื่อระบุว่ารายการในรายการอาร์กิวเมนต์ควร "เต็ม" รายการอาร์กิวเมนต์
CoffeeScript นำมาใช้เครื่องหมายทับทิมสไตล์มากในช่วงต้น (ดูปัญหา 16 ) แต่ในข้อเสนอแนะดักลาส Crockford ของไวยากรณ์ก็เปลี่ยนจาก*xไปx...สองสามสัปดาห์ต่อมา (ดูปัญหา 45 ) อย่างไรก็ตาม CoffeeScripters ยังคงอ้างถึงไวยากรณ์เป็นตัวดำเนินการ "splat" หรือ "splat"
สำหรับสิ่งที่พวกเขาทำจริงการแยกชิ้นส่วนของargumentsวัตถุในลักษณะที่อาร์กิวเมนต์ Splatted กลายเป็นอาร์เรย์ของอาร์กิวเมนต์ "พิเศษ" ทั้งหมด ตัวอย่างที่น่าสนใจที่สุดคือ
(args...) ->
ในกรณีนี้ก็จะเป็นสำเนาอาร์เรย์ของargs argumentsอาร์กิวเมนต์ Splatted สามารถมาก่อนหลังหรือระหว่างอาร์กิวเมนต์มาตรฐาน:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
ในสองกรณีแรกหากฟังก์ชันได้รับอาร์กิวเมนต์ 0-1 restจะเป็นอาร์เรย์ว่าง ในกรณีสุดท้ายฟังก์ชันต้องได้รับมากกว่า 2 อาร์กิวเมนต์เพื่อrestให้ไม่ว่างเปล่า
เนื่องจาก JavaScript ไม่อนุญาตให้มีลายเซ็นหลายตัวสำหรับฟังก์ชันที่มีชื่อเดียวกัน (เช่นเดียวกับ C และ Java) จึงช่วยประหยัดเวลาได้มากสำหรับการจัดการกับอาร์กิวเมนต์ที่แตกต่างกัน
               
              
arguments+call: stackoverflow.com/questions/17380315/…