JavascriptでDOM以外のオブジェクトを利用してカスタムイベントを実装するには？


jQueryを利用して`$('.target').on('myEvent',function(){});`とすると`myEvent`がトリガされた時に実行する関数を登録することができますが、対象のDOMが存在しないオブジェクトを利用してカスタムイベントを実装するにはどうすればよいのでしょうか。

実装が雑ですが以下コードによる質問の詳細になります。

[code]

    var dataLoader = {
      load: function(){
        $.get('http://example.com/api/get_data').done(function(data){
          dataLoader.trigger('onloaded'); // カスタムイベントを発火させたいがtriggerなど存在しない。
        });
      },
    };
    
    dataLoader.on('onloaded',function(){}); // onを利用してイベントリスンしたいがonなど存在しない。
    dataLoader.load();
    
[/code]




jQueryのイベント部分は、DOMオブジェクト以外に対しても使えます。単に任意のオブジェクトを`$()`に渡せば、`on`や`trigger`が使えるようになります。

[code]

    var o = $({});
    o.on('myEvent', function() {
      console.log('myEvent!');
    });
    o.trigger('myEvent');
    
[/code]




jQueryのイベント部分は、DOMオブジェクト以外に対しても使えます。単に任意のオブジェクトを`$()`に渡せば、`on`や`trigger`が使えるようになります。

[code]

    var o = $({});
    o.on('myEvent', function() {
      console.log('myEvent!');
    });
    o.trigger('myEvent');
    
[/code]

