इस सवाल का पहले से ही एक उत्तर है: < / P>
- 8 जवाब
निम्नलिखित मेरा कोड है - < / P>
(function ($) {obj = {alertteext}: function () {console.log ('called');}, testfunc: function () {console.log (this); Alerttext ();}, checkfunc: फ़ंक्शन () {आंतरिक (); फ़ंक्शन इनर () {console.log (this); this.alertText ()}}}}}) (jQuery)जब मैं
testFunc () ,सतर्क पाठ () को this कीवर्ड पर ठीक से बुलाता हूं, कॉल करता हूं।हालांकि
सतर्क पाठ () को यह का उपयोग करने के लिए अंदरअंदरूनी () (TypeError कह रहा है कि this.alertText एक फ़ंक्शन नहीं है) कॉल करने के बाद कॉल करने के बाद < कोड> चेकफ़ंक () फ़ंक्शनजब मैं ऊपर दिखाए गए के रूप में यह दिलाता हूं, मुझे इसके अंदर अलग सामग्री मिलती है - अंदर
testFunc () ऑब्जेक्ट को दिखानेobj < / कोड>, जबकि अंदरआंतरिक () दिखाता हैविंडो वस्तु।ऐसा क्यों है? यह दो स्थानों पर अलग क्यों करता है?
को
यह जावास्क्रिप्ट में कीवर्ड कॉलिंग प्रसंग पर निर्भर है, और इसमें एक बहु अर्थ है यह जावास्क्रिप्ट का सबसे जटिल और विचित्र सुविधा है। आप @ डार्क कथल्लू का पढ़ सकते हैं।जावास्क्रिप्ट में
यह ऑब्जेक्ट को परिभाषित करने के तीन तरीके हैं, साथ ही इसमें समझाया गया है:- someThing
- कुछ फंक्शन। एप्लिकेशन (कुछ, [arg1, arg2, argn])
- कुछ फ़ंक्शन (arg1, arg2, argN)
- कुछ फ़ंक्शन। Li>
जैसा कि आप किसी ऑब्जेक्ट के बिना आंतरिक फ़ंक्शन को कॉल करते हैं,
यह वैश्विक ऑब्जेक्ट को इंगित करता हैयह के लिएcheckFunc औरtestFunc वर्तमान वस्तु है जिसे आपobj को असाइन करते हैं। < P> अपनी समस्या को हल करने के लिए, बाहरी फ़ंक्शन में, एकvar बनाओ जो = यह औरउस को आंतरिक फ़ंक्शन में उपयोग करें। क्रॉकफोर्ड द्वारा इसकी सलाह दी गई है; -)
No comments:
Post a Comment