शब्द "स्प्लैट ऑपरेटर" रूबी से आता है, जहां *
चरित्र (कभी-कभी "स्पैट" - जारगॉन फ़ाइल प्रविष्टि कहा जाता है ) का उपयोग यह इंगित करने के लिए किया जाता है कि एक तर्क सूची में एक प्रविष्टि तर्कों की एक सूची को "सोख" चाहिए।
CoffeeScript रूबी शैली सूचकों को अपनाया बहुत पर (देखें जल्दी मुद्दा 16 ), लेकिन डगलस Crockford के सुझाव पर, वाक्य रचना से बदल गया था *x
करने के लिए x...
बाद में कुछ हफ़्ते (देखें मुद्दा 45 )। फिर भी, CoffeeScript अभी भी सिंटैक्स को "स्पैट" या "स्पैट ऑपरेटर" के रूप में संदर्भित करता है।
जैसा कि वे वास्तव में करते हैं, arguments
स्पैट्स ऑब्जेक्ट को इस तरह से स्लाइस करते हैं कि स्प्लिट तर्क "अतिरिक्त" तर्क का एक सरणी बन जाता है। सबसे तुच्छ उदाहरण है
(args...) ->
इस मामले में, args
बस की एक सरणी प्रतिलिपि होगी arguments
। चंचल तर्क या तो पहले, बाद में या मानक तर्कों के बीच आ सकते हैं:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
पहले दो मामलों में, यदि फ़ंक्शन को 0-1 तर्क मिलते हैं, तो rest
एक खाली सरणी होगी। अंतिम स्थिति में, फ़ंक्शन को rest
गैर-रिक्त होने के लिए 2 से अधिक तर्क प्राप्त करने की आवश्यकता होती है ।
चूंकि जावास्क्रिप्ट एक ही नाम (जिस तरह से सी और जावा करते हैं) के साथ फ़ंक्शन के लिए कई हस्ताक्षर की अनुमति नहीं देता है, अलग-अलग संख्या में तर्कों के साथ काम करने के लिए छप एक विशाल समय-बचतकर्ता है।
arguments
+call
: stackoverflow.com/questions/17380315/…