2010-09-01 18 views
6

जावास्क्रिप्ट में कॉलबैक फ़ंक्शन का अर्थ क्या है।कॉलबैक फ़ंक्शन अर्थ

+13

चालू रखें। मुझे Google से परामर्श करने दें ... – Lukman

+3

लुकमैन, कृपया लिंक प्रदान करें, ओपी कभी भी [Google] (http://www.google.com/search?q=callback+function) के बारे में कभी नहीं सुना होगा। कुछ परिणाम: [विकिपीडिया के बारे में कॉलबैक] (http://en.wikipedia.org/wiki/Callback_%28computer_science%29) [जेएस कॉलबैक के बारे में SO] (http: // stackoverflow।com/प्रश्न/483,073/रही एक बेहतर समझ के-कॉलबैक-कार्यों में जावास्क्रिप्ट)। – Lekensteyn

+5

आप दोनों को इतनी असहनीय मत बनो ... – Cipi

उत्तर

6

यह सिर्फ एक फ़ंक्शन के लिए एक नाम है जिसे किसी चीज़ के बाद वापस बुलाया जाना चाहिए। इस मामले में

var x = new XMLHttpRequest(); 
x.onreadystatechange = function(){ 
    if(x.readyState == 4){ 
     callbackfunction(x.responseText); 
    } 
} 
x.open('get', 'http://example.com/', true); 
x.send(null); 

callbackfunction सिर्फ एक सादे समारोह है,:

यह अक्सर XMLHttpRequest साथ प्रयोग किया जाता है

function callbackfunction(text){ 
    alert("I received: " + text); 
} 
13

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

function mainFunc(callBack) 
{ 
    alert("After you click ok, I'll call your callBack"); 

    //Now lets call the CallBack function 
    callBack(); 
} 

आप इस तरह यह फोन करेगा:

उदाहरण के लिए, आप एक मुख्य कार्य है, जिसमें आप एक समारोह है कि यह फोन करेगा पारित कर सकते हैं ...

मुख्य समारोह इस तरह दिख सकता हो सकता है

mainFunc(function(){alert("LALALALALALA ITS CALLBACK!");} 

या:

function thisIsCallback() 
{ 
    alert("LALALALALALA ITS CALLBACK!"); 
} 

mainFunc(thisIsCallback); 

यह बड़े पैमाने पर जावास्क्रिप्ट लाइब्रेरियों में प्रयोग किया जाता है। उदाहरण के लिए jQuery की एनीमेशन() फ़ंक्शन को इस तरह के फ़ंक्शन को पारित किया जा सकता है जब एनीमेशन समाप्त होता है।

कुछ अन्य फ़ंक्शन में कॉलबैक फ़ंक्शन पास करने से यह गारंटी नहीं मिलती है कि इसे कॉल किया जाएगा। कॉलबैक कॉल निष्पादित करना (calBack()) पूरी तरह से उस फ़ंक्शन के कार्यान्वयन पर निर्भर करता है।

यहां तक ​​कि नाम "कॉलबैक" आत्म व्याख्यात्मक ... =)

3

सिर्फ एक समारोह होने के अलावा, एक कॉलबैक फ़ंक्शन अतुल्यकालिक आवेदन डिजाइन के लिए एक प्रेरक है।

फ़ंक्शन को कॉल करने और वापसी मूल्य (ओं) की प्रतीक्षा करने के बजाय, थ्रेड या पूरे पीसी या यूआई को एकल थ्रेडेड सिस्टम पर लॉक करने के दौरान संभावित रूप से लॉक करना, एसिंक पैटर्न जिसे आप फ़ंक्शन कहते हैं, इससे पहले परिष्करण, और फिर आप अपने कोड से बाहर निकल सकते हैं (कॉलिंग ओएस, निष्क्रिय राज्य, रन लूप, जो कुछ भी वापस लौटें ...)। फिर बाद में, ओएस या एसिंक्रोनस फ़ंक्शन आपके कोड को वापस कॉल करता है। जिस कोड को आप वापस कॉल करना चाहते हैं वह आम तौर पर "कॉलबैक फ़ंक्शन" नामक किसी चीज़ में encapsulated है। अन्य उपयोग हैं, लेकिन ओओपी यूआई ढांचे में यह एक आम बात है।

नवीनतम आईओएस 4.x के साथ, आप कॉलबैक के लिए नामहीन "ब्लॉक" का भी उपयोग कर सकते हैं। लेकिन जिन भाषाओं में ब्लॉक नहीं हैं (या किसी अन्य नाम के तहत एनन क्लोजर) फ़ंक्शन कॉलबैक के लिए फ़ंक्शंस का उपयोग करते हैं।

+0

कुछ पुराने ओएस ने कॉलबैक के लिए केवल वैश्विक निर्देश पते का उपयोग किया (जिसे जरूरी नहीं कि "कार्यों" का पता होना आवश्यक हो। – hotpaw2

-1

आप बस वापस बटन के नीचे बयान onClick ईवेंट का उपयोग कर सकते हैं:

OnClick="javascript:history.go(-1)" 

यह तुम वापस अपने पिछले पृष्ठ जो आप हाल ही में दौरा किया था करने के लिए लेने के लिए काम करेंगे।

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