最佳答案
我有一个注册事件处理程序的构造函数:
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);};
但它表现出同样的问题。
如何访问正确的对象?