में मैं जानता हूँ कि यह मूर्खतापूर्ण है, लेकिन इस बीच कोई अंतर है:(...()) बनाम (...)() javascript बंद
(function() {
var foo = 'bar';
})();
और इस?
(function() {
var foo = 'bar';
}());
JSLintMove the invocation into the parens that contain the function
लिए हमें बताता है, लेकिन मैं करने की कोई जरूरत को देखते हैं।
संपादित करें: उत्तर बहुत अच्छे हैं। ~function
, JSHint वैकल्पिक रूप से (/***/)();
और क्रॉकफोर्ड के स्पष्टीकरण के लिए jQuery की प्राथमिकता के साथ वैकल्पिक! मैंने सोचा कि मैं सिर्फ "वे एक ही चीज़" उत्तर देने के लिए जा रहा था।
आप लोग अपवॉट्स के माध्यम से सबसे अच्छा फैसला करते हैं और मैं इसे टिक करता हूं।
ये दो उदाहरण बहुत ही समान हैं लेकिन 'कुत्ते की गेंद' संस्करण ब्रांड्स के पहले सेट के बाहर परिणाम देता है जबकि क्रॉकफ़ोर्ड अनुमोदित संस्करण इसे अंदर देता है। यह शायद ही कभी महत्वपूर्ण है लेकिन यह एक अंतर है। – Okonomiyaki3000
@ Okonomiyaki3000 यह कोई फर्क नहीं पड़ता है, जब तक कि आप इसे हस्ताक्षर नहीं करते हैं (यानी, कोष्ठक के अंदर और अधिक चीज़ें जोड़ना)। वास्तव में, मुझे लगता है कि 'foo = (/ *** /)();' और 'foo = (/ *** /());' एक ही बाइटकोड को संकलित कर सकता है। इस बात पर विचार करें कि '(ए + बी) + (सी + डी)' 'ए + (बी + सी) + डी' के समान संकलित होगा। –
हां, 'foo = (/ *** /)(); 'और' foo = (/ *** /());' वही हैं लेकिन '(foo =/*** /)();' और '(foo =/*** /)();' नहीं हैं। और, हाँ, यह pedantic है। ऐसा करने के लिए शायद कभी भी एक अच्छा कारण नहीं है। – Okonomiyaki3000