3gw*_*ain 4 javascript oop jquery module
在我的应用程序中有几个模块各自负责,这就是我有些困惑的地方..
模块之间如何通信?
如何通知或听取模块之间的决定适当的场景..?
例子:
模块一,
var MyModule1 = (function() {
var myPrivateData = 303;
function myPrivateFunction() {
alert('private');
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();
Run Code Online (Sandbox Code Playgroud)
模块 2
var MyModule2 = (function() {
var myPrivateName = privatized;
function myPrivateFunction() {
alert(myPrivateName) ;
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();
Run Code Online (Sandbox Code Playgroud)
我怎样才能让他们互相交流和倾听..?任何人都可以用一些小例子来澄清吗?我需要共享与 module2 共享的 privateData 和与 module1 共享的 myPrivate 名称,以防触发任何点击事件。
提前致谢!
以下是浏览器内部松散耦合模块组织的基本概念:
当 module1 中的代码需要通知其他人某个事件时,它会这样做:
$(document).trigger( "some:event", someData);
Run Code Online (Sandbox Code Playgroud)
如果需要通知 module2 “some:event”,则应在其初始化代码中执行此操作:
$(document).on( "some:event", function(evt,someData) {
// ... do something with the data ...
} );
Run Code Online (Sandbox Code Playgroud)
在这个模式中,两个模块是完全独立的。他们唯一需要知道的是他们正在与之通信的事件的名称。