实施期间具有相同名称的方法会发生什么?

时间:2017-06-01 09:07:31

标签: typescript methods implementation mixins

只是一个简单的问题。如果我有2个类,其中2个方法具有相同的名称...当我调用“applyMixins”时,如果我想实现这两个类(在一个新类中)会发生什么?

感谢。

1 个答案:

答案 0 :(得分:0)

   class First{
       name: string;
       methodA(name: string){
           this.name= name;
       }
   }

   class Second{
        id: string;
        methodA(id: string){
           this.id= id;
       }
   }

   class newClass implements First, Second {
       id: string;
       name: string;
       methodA:()=> void;
   }
   applyMixins(newClass, [First, Second]);
   function applyMixins(derivedCtor: any, baseCtors: any[]) {
       baseCtors.forEach(baseCtor => {
           Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
               derivedCtor.prototype[name] = baseCtor.prototype[name];
           });
       });
   }
   var Pluto = new newClass();

   console.log(Pluto.methodA);

这是我的代码(只是一个例子,看看会发生什么......)。我的consol日志中的结果是一个函数,就像SECOND CLASS的方法一样。那是对的吗?感谢