Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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

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
Javascript 扩展主干的最佳方式。集合/视图/模型_Javascript_Backbone.js - Fatal编程技术网

Javascript 扩展主干的最佳方式。集合/视图/模型

Javascript 扩展主干的最佳方式。集合/视图/模型,javascript,backbone.js,Javascript,Backbone.js,我需要用一组函数扩展backbone.collection: 例如: var collection1 = Backbone.Collection.extend({}); var collection2 = Backbone.Collection.extend({}); 应具有以下自定义方法: console.log(collection1.method1); // function () {} console.log(collection1.method2); // function () {

我需要用一组函数扩展backbone.collection:

例如:

var collection1 = Backbone.Collection.extend({});
var collection2 = Backbone.Collection.extend({});
应具有以下自定义方法:

console.log(collection1.method1); // function () {}
console.log(collection1.method2); // function () {}
另一方面

var collection3 = Backbone.Collection.extend({});
不应该有这些方法

console.log(collection3.method1); // undefined

如何扩展主干。仅针对collection1和collection2而非collection3进行收集?

您的意思是:

var CustomCollection = Backbone.Collection.extend({
    method1: function() {},
    method2: function() {}
});
var collection1 = CustomCollection.extend({});
var collection2 = CustomCollection.extend({});

var collection3 = Backbone.Collection.extend({});

你的意思是这样的:

var CustomCollection = Backbone.Collection.extend({
    method1: function() {},
    method2: function() {}
});
var collection1 = CustomCollection.extend({});
var collection2 = CustomCollection.extend({});

var collection3 = Backbone.Collection.extend({});

在木偶图示例之后,应向对象类的prototype属性添加属性或方法:

无论如何,以下代码相当于@anto_byrma。
但这种方法的优点是,您可以以相同的方式扩展集合、模型或视图

var obj = {
    method1: function() {},
    method2: function() {}
};

var collection1 = Backbone.Collection.extend({});
var collection2 = Backbone.Model.extend({});
var collection3 = Backbone.Collection.extend({});

_.extend(collection1.prototype, obj);
_.extend(collection2.prototype, obj);

在木偶图示例之后,应向对象类的prototype属性添加属性或方法:

无论如何,以下代码相当于@anto_byrma。
但这种方法的优点是,您可以以相同的方式扩展集合、模型或视图

var obj = {
    method1: function() {},
    method2: function() {}
};

var collection1 = Backbone.Collection.extend({});
var collection2 = Backbone.Model.extend({});
var collection3 = Backbone.Collection.extend({});

_.extend(collection1.prototype, obj);
_.extend(collection2.prototype, obj);