我有一個構造函數,它注冊一個事件處理程序:function MyConstructor(data, transport) { this.data = data; transport.on('data', function () { alert(this.data); });}// Mock transport objectvar transport = { on: function(event, callback) { setTimeout(callback, 1000); }};// called asvar obj = new MyConstructor('foo', transport);但是,我無法data在回調中訪問已創建對象的屬性。它看起來this并不是指創建的對象,而是指另一個對象。我還嘗試使用對象方法而不是匿名函數:function MyConstructor(data, transport) { this.data = data; transport.on('data', this.alert);}MyConstructor.prototype.alert = function() { alert(this.name);};但它表現出同樣的問題。如何訪問正確的對象?
如何在回調中訪問正確的`this`?
楊魅力
2019-05-20 15:07:27