【发布时间】:2014-11-03 13:39:20
【问题描述】:
我在 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 对象的实例是公共的,但对象 A 的实例在 B 对象内部是私有的。
问题是,当事件“test”发布时,它由 pubsub 处理,但因为 objA 不是全局的,我在控制台中看到 doSth 函数是未定义的。
有人知道如何解决这个问题吗?
【问题讨论】:
-
but because objA is not global这对于发布-订阅模式来说不是问题。除非..您使用的是什么 PubSub 实现?你在哪里打电话给objA.publish()? -
我使用的是 amplify.js 和 nunt,它们都没有奏效。但我现在尝试了 PubSub.js,看起来一切正常:O.
标签: javascript events publish-subscribe