1

イベントアグリゲーターを使用する場合_.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/

4

1 に答える 1

3

まったく違いはありません。アンダースコアの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() { /*...*/ }
});
于 2013-01-30T20:49:41.840 に答える