tôi xác định như sau MyClass
và phương pháp của nó trong một kịch bản sử dụng:Gọi một phương pháp đối tượng javascript từ bên trong một callback
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();
kịch bản này hoạt động và phương pháp myCallback()
được gọi khi GM_xmlhttpRequest hoàn tất.
Tuy nhiên, nó chỉ hoạt động vì cuộc gọi lại onload
đề cập đến biến toàn cục myClassInstance
. Nếu tôi cập nhật onload
callback để:
'onload': function (xhr) {
this.myCallback();
}
Sau đó, tôi nhận được (Chrome) lỗi:
Uncaught TypeError: Object [object DOMWindow] has no method 'myCallback'.
Nó dường như this
đang được đánh giá trong bối cảnh sai.
Có cách nào để gọi phương thức myCallback()
của myClassInstance
mà không phải sử dụng biến toàn cục?
+1 đánh tôi với nó – JAAulde
+1 Bạn vừa kết thúc phiên làm việc dài đầu giờ. Cảm ơn bạn. :) – Anthony