ES6导出扩展类然后导入它

时间:2017-08-14 17:09:39

标签: javascript import ecmascript-6 export

我有一个基础课(mobile.js)

class Mobile {
    constructor() {
        ...
    }
    method(msg){
       ...
    }
}
module.exports = Mobile;

然后我将其导入(mobileextended.js);

import Mobile from './mobile';

 class MobilePhone extends Mobile {
     method(){
        super.method('hello world!');
     }   
}
module.exports = MobilePhone;

最后我想将它导入mobilephone.js:

 import MobilePhone from './mobileextended.js';

    MobilePhone.method();

如何以ES6风格完成这项工作?因为现在我无法阅读财产' open'未定义的错误。

1 个答案:

答案 0 :(得分:0)

如果你想在地图中命名,你可以导入它们,例如

import Mobile from './Mobile'

您应该使用默认导出,例如

export default Mobile

来自定义Mobile的地方。

将此与具有命名导出

进行比较
export class Mobile { ... }

并在单独的模块中导入该特定名称。

import {Mobile} from Mobile

但是,正如loganfsmyth在评论中指出的那样,这不是您错误的来源。要使用非静态方法,您需要创建该类的实例。

const mobilePhone = new MobilePhone()
mobilePhone.method()