javascript - JavaScript 中的自定义事件处理

标签 javascript events publish-subscribe

我在 Javascript 中将事件从一个对象传递到另一个对象时遇到问题。我尝试使用 PubSub 来做到这一点。我举个例子:

function A() {

    function _publish(){
        PubSub.publish("test");
    }
    function _doSth() {
        console.log("Done!");
    }

    return {
        publish: _publish,
        doSth: _doSth
    };
}

function B() {
    var objA = new A();

    PubSub.subscribe("test", function(){
       objA.doSth(); 
    });  

}

该代码示例与我的应用程序中的对象结构类似。 B 对象的实例是公共(public)的,但对象 A 的实例在 B 对象内部是私有(private)的。

问题是,当事件“test”发布时,它由 pubsub 处理,但由于 objA 不是全局的,我在控制台中看到 doSth 函数未定义。

有人知道如何解决这个问题吗?

最佳答案

我不知道什么是 pubsub 但 objA 在 B 内部是本地的不是问题 你可以检查这个代码

function A() {

    function _publish(){

    }
    function _doSth() {
        console.log("Done!");
    }

    return {
        publish: _publish,
        doSth: _doSth
    };
}

function B() {
    var objA = new A();    
    objA.doSth();
}
new B();

//抱歉,这不是答案,但我没有资格发表评论。所以我必须写在答案框中

关于javascript - JavaScript 中的自定义事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715551/

相关文章:

ruby-on-rails - Rails pub/sub 与 faye

javascript - Backbone - 从触发器调用的 Chrome 调试函数

c# - DataGrid.ItemsSource 更改时如何引发事件

深入处理 VB.NET 事件

Jquery 事件滴流

python - PyQT相当于wx CallAfter?

javascript - 模拟不同选择器的点击事件

javascript - 一个函数中的全局变量赋值在另一个函数中无法访问

javascript - 简单的javascript PHP默认变量问题

publish - 设置 GoogleCloudPubsub 消息的过期时间