jQueryの小さなPubSubは、プリミティブ値またはオブジェクトを渡す場合に最適ですが、配列に問題があります。したがって、配列をオブジェクトにラップする必要があります。
(function($) {
var o = $({});
$.subscribe = function() {
o.on.apply(o, arguments);
};
$.unsubscribe = function() {
o.off.apply(o, arguments);
};
$.publish = function() {
o.trigger.apply(o, arguments);
};
}(jQuery));
$.subscribe('test',function(e,data){
console.log(data);
})
$.publish('test',1); //1
$.publish('test',{a:1}); //{a:1}
$.publish('test',[2,3,4]); //2
$.publish('test',{arr:[2,3,4]}) //{arr:[2,3,4]}
私はそれのいくつかの改良版を見てきました。それは主にサブスクライバーのキャッシュに焦点を合わせていますが、それらのどれも配列を渡すことができません。したがって、2つの質問:
- PubSubを介して配列を渡すのは良い考えですか?
- どうやってするか?