2012-02-16 18 views
8

में तत्काल कार्यवाही की गईं। क्या कोई मुझे दिखा सकता है कि कॉफीस्क्रिप्ट में तुरंत फ़ंक्शन कैसे करें। मैं इस जेएस ऑब्जेक्ट शाब्दिक के समान कुछ पूरा करने की कोशिश कर रहा हूं।कॉफीस्क्रिप्ट

WEBAPP = { 
    maxHeight : function(){ 
     /* Calc stuff n' stuff */ 
     WEBAPP.maxHeight = /* Calculated value */ 
    }(), 
    someProperty : '' 
    /* ... */   
} 

क्या यह संभव है या कामकाज क्या हैं?

उत्तर

18

है do:

WEBAPP = 
    maxheight: do -> 1+1 
    someProperty: '' 

कौन सा

को संकलित
var WEBAPP; 

WEBAPP = { 
    maxheight: (function() { 
    return 1 + 1; 
    })(), 
    someProperty: '' 
}; 
+0

यदि यह अजीब लगता है, '(-> 1 + 1)()' वही काम करेगा- '1 + 1'। –

1

आप ऐसा कुछ क्यों नहीं करेंगे?

square = (x) -> x * x 

WEBAPP = { 
    maxHeight: square(3), 
    someProperty: '' 
} 

अद्यतन

Btw: यह अन्य समाधान नहीं है

WEBAPP = { 
    maxHeight: (() -> 
     1 + 2 
    )() 
} 
2

किसी और के लिए इस प्रश्न में आने के लिए, आप do कीवर्ड को प्रारंभिक मान के साथ बीज रिकर्सिव "तत्काल-चालित फ़ंक्शंस" के लिए डिफ़ॉल्ट फ़ंक्शन पैरामीटर के साथ भी जोड़ सकते हैं। उदाहरण:

do recursivelyPrint = (a=0) -> 
    console.log a 
    setTimeout (-> recursivelyPrint a + 1), 1000 
संबंधित मुद्दे