我正在学习JS原型和对象,并遵循Js模式创建Backbone视图的最佳方法,该视图根据传递的模型返回不同的对象
var MaleView = function() {
this.initialize = function() {
// stuff
}
},
FemaleView = function() {
this.initialize = function() {
// stuff
}
},
HumanFactory = function() {
var self;
if (this.model && this.model.get('type') === 'male') {
self = new MaleView();
}
else {
self = new FemaleView();
}
return self;
},
HumanView = Backbone.View.extend(new HumanFactory());
我知道这意味着当HumanView初始化时,模型变量不是这样,HumanView将始终是一个FemaleView。我的问题是使用javascript继承实现这一目标的最佳方法是什么。
最简单的方法是什么?
答案 0 :(得分:0)
它设法让我的想象力变得简单,就是把工厂搬到HumanView那么简单。
var MaleView = Backbone.View.extend({
this.initialize = function() {
// stuff
}
}),
FemaleView = Backbone.View.extend({
this.initialize = function() {
// stuff
}
}),
HumanView = function(properties) {
var self;
if (properties) {
if (properties.model.get('type') === 'male') {
self = new MaleView(properties);
}
else {
self = new FemaleView(properties);
}
return self;
}
};