दिलचस्प पोस्ट
एनीमेशन चालू / बंद करने के लिए स्विंग टाइमर का उपयोग कैसे करें Matplotlib हिस्टोग्राम या Seaborn distplots के डिब्बे पर कोई रूपरेखा Google मानचित्र API 3 – डिफ़ॉल्ट (डॉट) मार्कर के लिए कस्टम मार्कर का रंग NetworkStream से .NET में पढ़ने का सही तरीका क्या है जेसन मैपिंग एक्सपैशन: प्रकार के लिए कोई उपयुक्त कन्स्ट्रक्टर नहीं मिला : JSON ऑब्जेक्ट से इन्स्तांत नहीं हो सकता विकिपीडिया लेख (पायथन) से पहले पैराग्राफ को निकालें LINQ के साथ <सूची> सूची से सबसे निकटतम संख्या कैसे प्राप्त करें? <Object> को सूचीबद्ध करने के लिए बाध्यकारी सूचीबॉक्स दृश्य स्टूडियो 2010 के लिए OpenCV-2.3 सेटअप करें Seedable जावास्क्रिप्ट यादृच्छिक संख्या जनरेटर मुझे कॉन्स्ट सही पर बेचना सिस्टम.in से पढ़ना – जावा दिनांक स्वरूप को स्ट्रिंग फ़ॉर्मेट में परिवर्तित करें ("yyyyMMdd") क्या प्लेटफार्मों में कुछ 8-बिट वर्णों के अलावा कुछ है? एंड्रॉइड में एक छवि कैसे डाउनलोड और सहेज सकती है

मैं इस संदर्भ को एक समारोह में कैसे पारित करूं?

मैंने सोचा कि यह कुछ मैं आसानी से गूगल हो सकता है, लेकिन शायद मैं सही सवाल नहीं पूछ रहा हूँ …

मैं किसी निश्चित जावास्क्रिप्ट फ़ंक्शन में "यह" किस प्रकार सेट करता हूं?

उदाहरण के लिए, जैसे jQuery के अधिकांश फ़ंक्शंस जैसे:

$(selector).each(function() { //$(this) gives me access to whatever selector we're on }); 

मैं अपने स्वसंपूर्ण कार्यों को कैसे लिख सकता / कहता हूं, जिन्हें कहा जाता है कि उचित "यह" संदर्भ क्या है? मैं jQuery का उपयोग करता हूं, इसलिए अगर ऐसा करने का एक jQuery-विशिष्ट तरीका है, तो वह आदर्श होगा।

वेब के समाधान से एकत्रित समाधान "मैं इस संदर्भ को एक समारोह में कैसे पारित करूं?"

जावास्क्रिप्ट .apply() .call() और .apply() तरीके आप एक समारोह के लिए संदर्भ सेट करने की अनुमति देते हैं।

 var myfunc = function(){ alert(this.name); }; var obj_a = { name: "FOO" }; var obj_b = { name: "BAR!!" }; 

अब आप कॉल कर सकते हैं:

 myfunc.call(obj_a); 

कौन सा FOO चेतावनी होगी दूसरी तरफ, पासिंग obj_b BAR!! सतर्क होगा BAR!!.apply() .call() और .apply() बीच अंतर यह है कि .apply() एक अल्पविराम से अलग सूची लेता है यदि आप अपने फ़ंक्शन पर तर्कों को पास करते हैं और .apply() को एक सरणी की आवश्यकता होती है।

 myfunc.call(obj_a, 1, 2, 3); myfunc.apply(obj_a, [1, 2, 3]); 

इसलिए, आप apply() विधि का उपयोग करके आसानी से फ़ंक्शन hook लिख सकते हैं। उदाहरण के लिए, हम jQuery के लिए एक सुविधा जोड़ना चाहते हैं। .css() विधि हम मूल फ़ंक्शन संदर्भ को स्टोर कर सकते हैं, कस्टम कोड के साथ फ़ंक्शन को अधिलेखित कर सकते हैं और संग्रहीत फ़ंक्शन को कॉल कर सकते हैं।

 var _css = $.fn.css; $.fn.css = function(){ alert('hooked!'); _css.apply(this, arguments); }; 

चूंकि जादू arguments वस्तु वस्तु की तरह एक सरणी है, हम इसे apply() करने के apply() बस पास कर apply() । इस तरह हम गारंटी देते हैं कि सभी पैरामीटर मूल फ़ंक्शन से गुजरते हैं।

का प्रयोग करें :

 _function.call(that, arg1, arg2, etc); 

जहां that ऑब्जेक्ट है जिसे आप फंक्शन में होना चाहते हैं

jQuery एक .call(...) पद्धति का उपयोग करता है जिसमें उस पैरामीटर के रूप में आपके द्वारा पारित फ़ंक्शन के अंदर वर्तमान नोड को असाइन करने का तरीका।

संपादित करें:

जब आपको संदेह होता है, तो jQuery के कोड के अंदर देखने के लिए डर नहींें, ये सब स्पष्ट और अच्छी तरह से प्रलेखित जावास्क्रिप्ट में है।

अर्थात्: इस प्रश्न का उत्तर लाइन 574 के आसपास है,
callback.call( object[ name ], name, object[ name ] ) === false

फ़ंक्शन के भीतर आप इसके संदर्भ को सेट करने के लिए बाँध फ़ंक्शन का उपयोग कर सकते हैं।

 function myFunc() { console.log(this.str) } const myContext = {str: "my context"} const boundFunc = myFunc.bind(myContext); boundFunc(); // "my context"