如何记录使用 Backbone.Events 的所有对象的所有事件?

How to log all events from all objects, which use Backbone.Events?

我有一组对象,它们以标准方式使用 Backbone.Events

var object = {};
_.extend(object, Backbone.Events);

我还有一个第三方库,它提供了一组对象,使用Backbone.Events

我想要一种方法来记录来自所有这些对象的所有事件,如上所述。

我知道 all 事件,但我的问题范围更广。我可以创建一个抽象对象,它记录所有事件并在任何地方使用它,但这不适用于第三方库,因为我也必须扩展它。

我最终为 Backbone.Layout(我使用的 third-party library)、Backbone.ModelBackbone 对象本身编写了自定义处理程序。

示例:

// similar handler can be written for Backbone.Model
Backbone.Layout.prototype.trigger = function() {
   console.log('view', arguments);
   Backbone.Events.trigger.apply(this, arguments);
}

Backbone.on("all", function(eventName) {
   console.log(eventName, JSON.stringify(arguments));
});