मैं परिभाषित के भीतर से एक जावास्क्रिप्ट वस्तु विधि आह्वान निम्नलिखित MyClass
और एक उपयोगकर्ता स्क्रिप्ट में अपने तरीके:एक कॉलबैक
function MyClass() {
this.myCallback = function() {
alert("MyClass.myCallback()");
};
this.startRequest = function() {
GM_xmlhttpRequest({
'method': 'GET',
'url': "http://www.google.com/",
'onload': function (xhr) {
myClassInstance.myCallback();
}
});
};
}
var myClassInstance = new MyClass();
myClassInstance.startRequest();
यह स्क्रिप्ट काम करता है और myCallback()
विधि एक बार GM_xmlhttpRequest कम्प्लिट्स कहा जाता हो जाता है।
हालांकि, यह केवल काम करता है क्योंकि onload
कॉलबैक वैश्विक चर myClassInstance
का जिक्र कर रहा है। अगर मैं करने के लिए onload
कॉलबैक अद्यतन:
Uncaught TypeError: Object [object DOMWindow] has no method 'myCallback'.
यह this
गलत संदर्भ में मूल्यांकन किया जा रहा है लगता है:
'onload': function (xhr) {
this.myCallback();
}
तो मैं (क्रोम) त्रुटि मिलती है।
क्या वैश्विक चर का उपयोग करने के लिए myClassInstance
की myCallback()
विधि का उपयोग करने का कोई तरीका है?
+1 मुझे इससे हराएं। – JAAulde
+1 आपने अभी अपना घंटा लंबा सिर स्लैमिंग सत्र समाप्त कर दिया है। धन्यवाद। :) – Anthony