【问题标题】:Backbone event aggregators骨干事件聚合器
【发布时间】:2013-01-30 20:46:53
【问题描述】:

将_.extend({}, Backbone.Events) 和_.clone(Backbone.Events) 用于事件聚合器有什么区别?我已经看到它们都用于此目的:

http://backbonejs.org/#Events http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/

【问题讨论】:

    标签: events backbone.js underscore.js


    【解决方案1】:

    绝对没有区别。下划线的clone方法的定义是:

    _.clone = function(obj) {
      if (!_.isObject(obj)) return obj;
      return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
    };
    

    所以如果_.clone 的参数是一个对象,那么克隆是通过以下方式完成的:

    _.extend({}, obj);
    

    当您还想在新对象上定义其他属性时,使用_.extend({}, Backbone.Events) 语法很有意义。因为extend 接受任意数量的参数,每个参数都将扩展到第一个参数,所以通常定义事件对象如下:

    //define an evented object
    var foo = _.extend({}, Backbone.Events, {
      bar: function() { /*...*/ }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多