Javascript 从其他非主干对象扩展主干。模型/与其他非主干对象一起扩展主干

Javascript 从其他非主干对象扩展主干。模型/与其他非主干对象一起扩展主干,javascript,inheritance,backbone.js,underscore.js,Javascript,Inheritance,Backbone.js,Underscore.js,我试图实现的是使用Backbone.Model中的方法扩展以前定义的类,或者以其他方式扩展,只要效果最好。基本上,我的代码如下所示: var SomeObject = function() {}; SomeObject.CLASS_ATTRIBUTE = 'something'; SomeObject.prototype.aFunction = function() { return Math.E; }; SomeObject.prototype.attrB = 'wat'; var Some

我试图实现的是使用
Backbone.Model
中的方法扩展以前定义的类,或者以其他方式扩展,只要效果最好。基本上,我的代码如下所示:

var SomeObject = function() {};
SomeObject.CLASS_ATTRIBUTE = 'something';
SomeObject.prototype.aFunction = function() { return Math.E; };
SomeObject.prototype.attrB = 'wat';

var SomeModel = Backbone.Model.extend({});
此时,我如何使用
SomeObject
(或者反过来)扩展
SomeModel
,以包含
CLASS\u属性
,以及
affunction
attrB
作为一个模型属性,而不丢失
主干.Model
功能


谢谢你的回答

如果
SomeObject
被定义为:

var SomeObject = {
  CLASS_ATTRIBUTE: 'something',
  aFunction: function () { return MATH.E; },
  attrB: 'wat'
}
然后


你会按照你的要求去做吗

你所说的扩展是什么意思

  • 是否要合并对象
  • 是否要将自定义“方法”添加到
    SomeModel
  • 是否要创建同时具有
    SomeModel
    SomeObject
    方法和属性的新对象


  • 请注意,这也是有效的

    var SomeModel = Backbone.Model.extend({});
    SomeModel.CLASS_ATTRIBUTE = 'something';
    SomeModel.prototype.aFunction = function() { return Math.E; };
    SomeModel.prototype.attrB = 'wat';
    
    或者这个

    var SomeModel = Backbone.Model.extend({
        initialize: function (params) {
            $.extend(true, this, params.obj);
        }
    });
    var mObj = new SomeModel({obj: new SomeObject()});
    
    var SomeModel = Backbone.Model.extend({});
    SomeModel.CLASS_ATTRIBUTE = 'something';
    SomeModel.prototype.aFunction = function() { return Math.E; };
    SomeModel.prototype.attrB = 'wat';
    
    var SomeModel = Backbone.Model.extend({
        initialize: function (params) {
            $.extend(true, this, params.obj);
        }
    });
    var mObj = new SomeModel({obj: new SomeObject()});