如何扩展继承Backbone.Events的class?
How to extend the class which inherits Backbone.Events?
我正在尝试使用 Backbone.js 继承模型创建 类 的以下结构:
Backbone.Events -> Parent -> Child
Child 应该从 parent 调用 initialize
,但不幸的是它不起作用。 Parent 方法和属性不可见。请帮忙。
我的代码
var Parent = function() {
this.initialize.apply(this, arguments);
};
_.extend(Parent.prototype, Backbone.Events, {
initialize: function() {
// parent init
},
});
var Child = function() {
this.initialize.apply(this, arguments);
};
_.extend(Child.prototype, Parent, {
/* Inherits Parent */
initialize: function() {
// need to call `parent init` code
// need to init myself (child)
// DOES NOT WORK
// Parent methods and properties are not visible
Parent.prototype.initialize.call(this, arguments);
}
});
只需使用以下方法:
function Parent() {
this.initialize.apply(this, arguments);
};
_.extend(Parent.prototype, Backbone.Events, {
initialize: function() {
// parent init
},
});
// pick extend method from Backbone
Parent.extend = Backbone.Model.extend;
var Child = Parent.extend({
initialize: function() {
// Parent methods and properties are visible
Parent.prototype.initialize.apply(this, arguments);
}
});
我正在尝试使用 Backbone.js 继承模型创建 类 的以下结构:
Backbone.Events -> Parent -> Child
Child 应该从 parent 调用 initialize
,但不幸的是它不起作用。 Parent 方法和属性不可见。请帮忙。
我的代码
var Parent = function() {
this.initialize.apply(this, arguments);
};
_.extend(Parent.prototype, Backbone.Events, {
initialize: function() {
// parent init
},
});
var Child = function() {
this.initialize.apply(this, arguments);
};
_.extend(Child.prototype, Parent, {
/* Inherits Parent */
initialize: function() {
// need to call `parent init` code
// need to init myself (child)
// DOES NOT WORK
// Parent methods and properties are not visible
Parent.prototype.initialize.call(this, arguments);
}
});
只需使用以下方法:
function Parent() {
this.initialize.apply(this, arguments);
};
_.extend(Parent.prototype, Backbone.Events, {
initialize: function() {
// parent init
},
});
// pick extend method from Backbone
Parent.extend = Backbone.Model.extend;
var Child = Parent.extend({
initialize: function() {
// Parent methods and properties are visible
Parent.prototype.initialize.apply(this, arguments);
}
});