26

संभावित डुप्लिकेट:
What does this mean? (function (x,y)){…}){a,b); in JavaScript
What do parentheses surrounding a JavaScript object/function/class declaration mean?यह "(फ़ंक्शन() {});", ब्रैकेट के अंदर एक फ़ंक्शन, जावास्क्रिप्ट में क्या है?

हाय सभी

मैं क्या निम्नलिखित पता नहीं है करता है:

(function(){ 
    // Do something here 
    ... 
})(someWord) //Why is this here?; 

मेरे कुए शेर हैं:

  1. ब्रैकेट के अंदर फ़ंक्शन डालने का क्या अर्थ है। i.e। (function(){});?
  2. फ़ंक्शन के अंत में ब्रैकेट का सेट क्या करता है?

मैं आमतौर पर इन्हें jquery कोड, और कुछ अन्य जावास्क्रिप्ट पुस्तकालयों में देखता हूं।

+1

ही यहाँ प्रश्न: http://stackoverflow.com/questions/3921922/what-does-this-mean-function-xyab- इन-जावास्क्रिप्ट/3 9 21 997 # 3 9 21 997 – DoXicK

उत्तर

48

आप तुरंत एक विशिष्ट पैरामीटर के साथ एक Anonymus समारोह कॉल कर रहे हैं।

एक उदाहरण:

(function(name){ 
    alert(name); 
})('peter') 

यह अलर्ट "पीटर"।

jQuery के मामले में आप पैरामीटर के रूप में jQuery पास कर सकते हैं और अपने कार्य में $ का उपयोग कर सकते हैं। तो आप अभी भी noConflict मोड में jQuery का उपयोग लेकिन का उपयोग आसान $ कर सकते हैं:

jQuery.noConflict() 
(function($){ 
    var obj = $('<div/>', { id: 'someId' }); 
})(jQuery) 
+0

प्रतिक्रिया के लिए धन्यवाद, यह अब समझ में आता है – Shaoz

+0

क्या इस समारोह को नाम दिया जा सकता है? या यह गुमनाम होना है? –

8

आप एक फ़ंक्शन बना रहे हैं जिसे तत्काल कहा जा रहा है, someWord पैरामीटर के रूप में।

+0

वाह, यह सबसे तेज जवाब है और मुझे यह मिल गया है।धन्यवाद – Shaoz

+0

आपका स्वागत है। –

6

यह एक अज्ञात फ़ंक्शन को परिभाषित करने का एक तरीका है और फिर इसे तुरंत निष्पादित करने का एक तरीका है - जैसा कि कोई निशान नहीं था। फ़ंक्शन का दायरा वास्तव में स्थानीय है। अंत में () ब्रैकेट फ़ंक्शन निष्पादित करते हैं - संलग्न ब्रैकेट को निष्पादित किया जा रहा है कि क्या निष्पादित किया जा रहा है।

7

असल में यह आपको एक अज्ञात फ़ंक्शन घोषित करने देता है, और उसके बाद इसे कोष्ठक में संलग्न करके (someWord) लिखकर आप फ़ंक्शन चला रहे हैं। आप इसके बारे में एक वस्तु घोषित करने के बारे में सोच सकते हैं और फिर तुरंत वस्तु को तुरंत चालू कर सकते हैं।

2

शायद this पोस्ट आपको थोड़ा सा मदद करेगा।

7

इसका उपयोग अज्ञात फ़ंक्शन बनाने के लिए किया जाता है (नाम के बिना फ़ंक्शन जिसे अन्य फ़ंक्शन के अंदर "नेस्टेड" किया जा सकता है) और उस फ़ंक्शन पर तर्क पारित करें। कुछ तार को तर्क के रूप में पारित किया गया है, और फ़ंक्शन इसे "तर्क" कीवर्ड का उपयोग करके पढ़ सकता है।

उपयोग के सरल उदाहरण:

function Foo(myval) { 
    (function(){ 
     // Do something here 
     alert(arguments[0]); 
    })(myval); //pass myval as argument to anonymous function 
} 
... 
Foo(10); 
संबंधित मुद्दे