ES6注入扩展类

时间:2016-05-04 17:19:27

标签: javascript ecmascript-6

我很好奇我可以调用扩展类并让它仍然导入它需要的东西。

欢迎课程:

import { ErrorLevel } from './error-level.js';

export class Welcome extends ErrorLevel {
  constructor() {
    super();
  }
}

错误级别类:

import { Notification } from 'aurelia-notification';

export class ErrorLevel {
  static inject() {
    return [Notification];
  }

  constructor(notification) {
    this.notification = notification;
  }
}

我知道一旦调用super(),它将调用扩展类并传入0个参数。当我调用super()时,我的ErrorClass构造函数是否有办法提取通知?

2 个答案:

答案 0 :(得分:0)

  

super([arguments]); // calls the parent constructor.   super.functionOnParent([arguments]);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super

在Welcome的super函数中传递一个参数,用该参数调用父类构造函数。您将看到this的日志包含通知,该通知设置为我们传递给super的参数。

http://jsbin.com/raguqopesu/1/edit?js,console,output

class ErrorLevel {
  constructor(notification) {
    this.notification = notification;
  }
}


class Welcome extends ErrorLevel {
  constructor() {
    super(Notification);
    console.log(this);
  }
}


const yo = new Welcome();

答案 1 :(得分:0)

export class Welcome extends ErrorLevel {
  constructor(notification) {
    super(notification);
  }
}