अगर मैं इस तरह एक समारोह है:कॉलर फ़ंक्शन के 'यह' मूल्य कैसे प्राप्त करें?
function foo(_this) {
console.log(_this);
}
function bar() {}
bar.prototype.func = function() {
foo(this);
}
var test = new bar();
test.func();
तो bar
की test
उदाहरण लॉग होता है।
हालांकि, इसके लिए काम करने के लिए मुझे फ़ंक्शन में this
पास करना होगा। मैं सोच रहा था कि this
पास बिना this
मान प्राप्त करना संभव है या नहीं।
मैंने arguments.callee.caller
का उपयोग करने का प्रयास किया, लेकिन यह प्रोटोटाइप फ़ंक्शन को वापस लौटाता है और प्रोटोटाइप फ़ंक्शन के अंदर this
मान नहीं देता है।
क्या प्रोटोटाइप फ़ंक्शन में केवल foo()
पर कॉल करके bar
का उदाहरण लॉग करना संभव है?
नहीं आप कार्यों के ऊपर कॉल स्टैक संदर्भ का उपयोग नहीं कर सकते हैं। आपको इस संदर्भ को साथ पास करना होगा। – Raynos
क्या कोई कारण है कि आप 'इस' को पारित नहीं करना चाहते हैं यदि आप पहले से ही बार के प्रोटोटाइप से जुड़े लॉगिंग के लिए एक विशेष उद्देश्य फ़ंक्शन बनाने जा रहे हैं? क्या इस पैटर्न का उपयोग करने के लिए सीखने के उद्देश्यों के अलावा कोई कारण है? – TNi
@ टीएनआई: यह आवश्यक रूप से एक प्रैक्टिकल उद्देश्य नहीं है, लेकिन यह मेरे परिदृश्य में उपयोगी होगा। मैं एक फ़ंक्शन को फ़ंक्शन और सीमाओं को पार करके लूप के लिए एक बहु-स्तर बनाने की कोशिश कर रहा हूं, जो फ़ंक्शन को निष्पादित करता है क्योंकि यह लूप के साथ होगा।लूप के लिए नियमित रूप से, कोई 'इस' तक पहुंच सकता है, लेकिन इस तरह ऐसा लगता है कि मुझे अपने कार्य में' यह 'पास करने की आवश्यकता है। – pimvdb