2012-09-04 18 views
14

रूबी में, आप यह कर सकते हैं:जावास्क्रिप्ट आपको संख्याओं पर सीधे तरीके से कॉल करने की अनुमति क्यों नहीं देता है?

3.times { print "Ho! " } # => Ho! Ho! Ho! 

मैं जावास्क्रिप्ट में यह करने की कोशिश की:

Number.prototype.times = function(fn) { 
    for (var i = 0; i < this; i++) { 
     fn(); 
    } 
} 

यह काम करता है:

(3).times(function() { console.log("hi"); }); 

यह

3.times(function() { console.log("hi"); }); 
नहीं है

क्रोम देना मुझे एक वाक्यविन्यास त्रुटि है: "अप्रत्याशित टोकन ILLEGAL"। क्यूं कर?

+1

... क्योंकि जावास्क्रिप्ट रूबी नहीं है? यह पूछने की तरह है "रूबी की तरह काम क्यों नहीं करते?"। – Incognito

+6

@ गुप्त पहचान, नहीं? मैं पूछ रहा हूं कि यह एक वाक्यविन्यास त्रुटि क्यों है, क्यों नहीं यह रूबी की तरह काम नहीं करता है ... –

+1

क्या आप पहली जगह रूबी के बारे में बात करने और उस वक्तव्य के साथ स्थिरता बनाए रखने के तर्कसंगत समझा सकते हैं? – Incognito

उत्तर

35

अंक के दशमलव बिंदु का प्रतिनिधित्व करने के बाद ., आपको किसी संपत्ति या विधि का उपयोग करने के लिए किसी अन्य का उपयोग करना होगा।

3..times(function() { console.log("hi"); }); 

यह केवल दशमलव अक्षर के लिए आवश्यक है। ऑक्टल और हेक्साडेसिमल अक्षरों के लिए आप केवल एक . का उपयोग करेंगे।

03.times(function() { console.log("hi"); });//octal 
0x3.times(function() { console.log("hi"); });//hexadecimal 

इसके अलावा घातीय

3e0.times(function() { console.log("hi"); }); 

तुम भी एक स्थान का उपयोग कर सकते हैं के बाद से एक संख्या में एक अंतरिक्ष अमान्य है और फिर वहाँ कोई अस्पष्टता नहीं है।

3 .times(function() { console.log("hi"); }); 

के रूप में टिप्पणी में wxactly द्वारा कहा गया एक minifier ऊपर सिंटैक्स त्रुटि के कारण अंतरिक्ष हटा हालांकि।

+0

आह, धन्यवाद। दिलचस्प है कि यह रूबी में दशमलव बिंदु का भी प्रतिनिधित्व कर सकता है लेकिन यह अभी भी काम करता है। –

+5

मैं 2 डॉट्स करने के खिलाफ जाता हूं क्योंकि पाठक के लिए भ्रम पैदा करने की संभावना बहुत अधिक है। Parantheses अधिक आत्म वर्णनात्मक हैं। –

+3

@AlexCoplan मैं अनुमान लगा रहा हूं क्योंकि रुबी के पास पूर्णांक और फ्लोट प्रकार हैं, लेकिन जावास्क्रिप्ट में अभी संख्या – Musa

संबंधित मुद्दे

 संबंधित मुद्दे