Если вы действительно хотите, чтобы переопределить конструктор, передать constructor
свойства Backbone.Model.extend()
, например:
var Klass = Backbone.Model.extend({
constructor : function (attributes, options) {
// ...
}
});
Если вы хотите, чтобы вызвать встроенный конструктор от вашего пользовательского конструктора вы можете сделать что-то вроде:
var Klass = Backbone.Model.extend({
constructor : function (attributes, options) {
Backbone.Model.apply(this, arguments);
}
});
Или, если вы не хотите повторять имя va riable содержащего родительский класса во всем классе к югу, или вы не хотите, чтобы беспокоиться о значении этих переменных изменений, вы можете сделать что-то вроде следующий:
var Klass;
var parent_klass = Backbone.Model.prototype;
(function (parent_klass) {
Klass = parent_klass.constructor.extend({
constructor : function (attributes, options) {
parent_klass.constructor.apply(this, arguments);
}
});
})(parent_klass);
Или, если вы предпочитаете путь @Claude suggests, но повторять имя переменных подклассов в вспомогательном классе вместо имени класса вара родительского:
var Klass = Backbone.Model.extend(
{
constructor : function (attributes, options) {
Klass.parent_klass.constructor.apply(this, arguments);
}
},
{
parent_klass : Backbone.Model.prototype
}
);
Если вы хотите больше советов, чем это, вы должны быть более конкретными о том, что вы хотите достичь.
Все, что вы только хотите сделать после функциональности встроенного конструктора, вероятно, вы должны сделать в initialize()
.
Вы можете преобразовать JSON сервера при необходимости, используя 'parse' (http://documentcloud.github.com/backbone/#Model-parse). Возможно, вам следует уточнить, что вы пытаетесь сделать, пример может помочь. –