簡體   English   中英

如何在javascript模塊之間進行通信......?

[英]How to communicate between javascript modules…?

在我的應用程序中有幾個模塊負責自己的責任,這就是我有些困惑的地方..

  1. 如何在模塊之間進行通信?

  2. 如何通知或聽取模塊之間的決定適當的場景..?

例:

模塊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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM