如何在回调函数中正确访问`this`对象
P粉608647033
P粉608647033 2023-08-20 16:11:32
[Vue.js讨论组]

我有一个构造函数,它注册了一个事件处理程序:


function MyConstructor(data, transport) {
    this.data = data;
    transport.on('data', function () {
        alert(this.data);
    });
}

// 模拟传输对象
var transport = {
    on: function(event, callback) {
        setTimeout(callback, 1000);
    }
};

// 调用方式
var 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);
};

但是它也出现了相同的问题。

如何访问正确的对象?

P粉608647033
P粉608647033

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号