Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 主干事件聚合器_Events_Backbone.js_Underscore.js - Fatal编程技术网

Events 主干事件聚合器

Events 主干事件聚合器,events,backbone.js,underscore.js,Events,Backbone.js,Underscore.js,对于事件聚合器,使用.extend({},Backbone.Events)和.clone(Backbone.Events)有什么区别?我已经看到它们都用于此目的: 绝对没有区别。下划线的clone方法的定义是: _.clone = function(obj) { if (!_.isObject(obj)) return obj; return _.isArray(obj) ? obj.slice() : _.extend({}, obj); }; 因此,如果.clone的参数是一个对

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


绝对没有区别。下划线的
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() { /*...*/ }
});