如何将mixin添加到JavaScript Class

例如这样一个case

class Test { 
    constructor() { 
      this.var1 = 'var1' 
    } 
    method1() { 
      console.log(this.var1) 
    } 
    test() { 
      this.method2() 
    } 
} 

const mixin = { 
    var2: 'var2', 
    method2: { 
      console.log(this.var2) 
    } 
} 

Javascript中的类只是语法糖,它使添加构造函数/原型对变得简单明了。功能没有从ES6之前的代码有变化。

可以将属性添加到原型:

Object.assign(Test.prototype, mixin); 

可以在构造函数中添加它来创建的每个对象:

constructor() { 
    this.var1 = 'var1'; 
    Object.assign(this, mixin); 
} 

你可以在构造函数中根据条件将其添加:


constructor() { 
    this.var1 = 'var1'; 
    if (someCondition) { 
      Object.assign(this, mixin); 
    } 
} 

或者可以在创建后将其分配给对象:

let test = new Test(); 
Object.assign(test, mixin); 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。