Javascript 使用工厂创建派生类型
我有这个基本类型:Javascript 使用工厂创建派生类型,javascript,Javascript,我有这个基本类型: function Transition(slide, settings){ this.slide = slide; this.settings = settings; this.duration = (this.settings['transitionSpeed'] / 1000) + 's' } 我有这样一个派生类型: function FadeTransition(){ Transition.call(this); } FadeTransition.
function Transition(slide, settings){
this.slide = slide;
this.settings = settings;
this.duration = (this.settings['transitionSpeed'] / 1000) + 's'
}
我有这样一个派生类型:
function FadeTransition(){
Transition.call(this);
}
FadeTransition.prototype = new Transition();
FadeTransition.prototype.constructor = FadeTransition;
我有一个factory对象,我想创建各种派生类型:
var TransitionFactory = function () {
return {
createTransition: function (transitionType, slide, settings) {
if (transitionType) {
type = transitionType;
}
if (type == 'fade') {
return new FadeTransition(slide, settings);
};
},
//Set default transition
type: "fade"
};
};
我希望通过执行以下操作来实例化我的各种派生转换:
var outTransition = this.transitionFactory.createTransition(currentSlide, currentSlide.outTransition, this.settings);
但是,我没有走那么远,因为我的FadeTransition定义中有一行:
FadeTransition.prototype = new Transition();
我得到一个错误,因为转换
构造函数需要参数,但当我将其构造函数分配给FadeTransition.prototype
时,我没有传入任何参数。我该怎么做
利用工厂并能够使用它创建派生对象的最佳方法是什么?Replace
FadeTransition.prototype=new Transition()代码>带有FadeTransition.prototype=Object.create(转换)代码>。这是一个很好的答案!如果你能提供一个简短的解释,我会这样做。