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(转换)。这是一个很好的答案!如果你能提供一个简短的解释,我会这样做。