मैं बंद (और सामान्य में Javscript) के लिए एक शुरुआत कर रहा हूँ, और मैं क्या इस कोड में हो रहा है के रूप में एक संतोषजनक स्पष्टीकरण नहीं मिल सकता है:इस बंद होने पर 'इस' कीवर्ड तक पहुंच क्यों नहीं है? - jQuery
function myObject(){
this.myHello = "hello";
this.myMethod = do_stuff;
}
function do_stuff(){
var myThis = this;
$.get('http://example.com', function(){
alert(this.myHello);
alert(myThis.myHello);
});
}
var obj = new myObject;
obj.myMethod();
यह सूचित करेंगे 'अनिर्धारित' और फिर 'हैलो'। जाहिर है यह jQuery विशिष्ट नहीं होना चाहिए, लेकिन यह मेरे मूल कोड का सबसे सरल रूप है जिसके साथ मैं आ सकता हूं। do_stuff()
में बंद होने पर उस दायरे में चर के लिए पहुंच है, लेकिन जाहिर है यह नियम this
कीवर्ड पर लागू नहीं होता है।
सवाल:
जब बंद do_stuff()
के दायरे से बाहर पारित हो जाता है (इस मामले $.get()
में) क्या this
का क्या होगा? myThis
में this
की एक प्रति शामिल है या इसका संदर्भ है? क्या यह आमतौर पर this
का उपयोग बंद करने का अच्छा विचार नहीं है?
किसी भी प्रतिक्रिया की बहुत सराहना की।
का उपयोग करके मैं एक फॉलो अप पूछने वाला था लेकिन आपके नवीनतम संपादन ने इसका उत्तर दिया। धन्यवाद! – thewiglaf
@thewiglaf: आपका स्वागत है! अगर आपको कोई संदेह है तो टिप्पणी करने के लिए स्वतंत्र महसूस करें ... – CMS