[英]How to communicate between javascript modules…?
在我的應用程序中有幾個模塊負責自己的責任,這就是我有些困惑的地方..
如何在模塊之間進行通信?
如何通知或聽取模塊之間的決定適當的場景..?
例:
模塊1,
var MyModule1 = (function() {
var myPrivateData = 303;
function myPrivateFunction() {
alert('private');
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();
第2單元
var MyModule2 = (function() {
var myPrivateName = privatized;
function myPrivateFunction() {
alert(myPrivateName) ;
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();
我怎樣才能讓他們互相溝通,互相傾聽......? 有人可以用一些小例子澄清一下嗎? 我需要共享與module2共享的privateData和與module1共享的myPrivate名稱,以及觸發任何click事件的情況。
提前致謝!
以下是瀏覽器內松耦合模塊組織的基本概念:
當module1中的代碼需要通知其他人某些事件時,它會執行以下操作:
$(document).trigger( "some:event", someData);
而module2如果需要通知“some:event”,則應在其初始化代碼中執行此操作:
$(document).on( "some:event", function(evt,someData) {
// ... do something with the data ...
} );
在此模式中,兩個模塊完全獨立。 他們唯一要知道的是他們正在與之交流的事件的名稱。
像這樣的東西
var ParentClass = (function() {
var privateVariable = 'toto';
this.publicVariable = 'titi';
this.ChildClass = new ChildClass(this);
this.ChildClass.execute();
});
function ChildClass(parent) { this.parent = parent; return this; };
ChildClass.prototype.execute = function() {
alert (this.parent.publicVariable); // show titi
};
ParentClass();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.