Это паб суб библиотека Питера Хиггинса: https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.jsПытаясь понять этот код (паб/библиотека суб)
(function (d) {
var cache = {};
d.publish = function (topic, args) {
cache[topic] && d.each(cache[topic], function() {
this.apply(d, args || []);
});
};
d.subscribe = function (topic, callback) {
if (!cache[topic]) {
cache[topic] = [];
}
cache[topic].push(callback);
return [topic, callback];
};
d.unsubscribe = function (handle) {
var t = handle[0];
cache[t] && d.each(cache[t], function (idx) {
if (this == handle[1]) {
cache[t].splice(idx, 1);
}
});
};
})(jQuery);
Я не понимаю логику и функциональность publish
:
cache[topic] && d.each(cache[topic], function() {
**this.apply(d, args || []);** //what is happening here?
});
Какова цель этой части? за исключением того факта, что он публикует событие