从一个扩展两个ES6类

时间:2016-11-05 07:53:15

标签: javascript angularjs ecmascript-6 es6-class

我打算从一个扩展两个ES6类,两个扩展类在Angular中用作控制器。

例如,

class Base {
   constructor(name,age){
      this.name=name;
      this.age=age;
   }

   getDetails(){
      return this.name + ' ' + this.age; 
  }

}

class Controller1 extends Base{
   constructor(name,age){
     super(name,age); 
     this.getDetails = this.getDetails.bind(this);     
   }

   getDetails(){
      return super.getDetails();
  }

}


class Controller2 extends Base{
   constructor(name,age){
     super(name,age); 
     this.getDetails = this.getDetails.bind(this);     
   }

   getDetails(){
      return super.getDetails();
  }

}

在上面的例子中,controller1和controller2被注册为角度控制器。这很好用,但是我注意到,每次访问每个控制器时,都会调用两次Base类。几个问题:

这种设计模式是否正确?如果是,如何防止基础构造函数被调用两次? 我想要实现的是在两个控制器之间共享几个方法。如果以上是无效的情况,那么实现这一目标的理想方法是什么?

0 个答案:

没有答案