【发布时间】:2015-07-05 18:42:02
【问题描述】:
我正在使用 ECMAScript6 模块。从以下选项从模块导出/导入多个方法的正确方法是什么?
单类静态方法:
//------ myClass.js ------
export default class myClass {
static myMethod1() {
console.log('foo');
}
static myMethod2(args...) {
console.log('bar');
}
}
//------ app.js ------
import myClass from 'myClass';
myClass.myMethod1(); //foo
多个导出方法:
//------ myMethods.js ------
export function myMethod1() {
console.log('foo');
}
export function myMethod2() {
console.log('bar');
}
//------ app.js ------
import {myMethod1, myMethod2} from 'myMethods';
myMethod1() //foo;
//OR
import * as myMethods from 'myMethods';
myMethods.myMethod1() //foo;
1) 出口: 一类只是静态方法感觉有点“代码气味”,但同样单独导出所有内容确实感觉有点冗长。仅仅是开发者的偏好还是对性能有影响?
2) 导入: '* as' 语法是我的首选方法,因为它允许您使用点表示法(引用模块和方法)来帮助代码可读性。当我可能只使用其中一种方法时,这是否会对性能产生影响?
【问题讨论】:
-
使用
import {myMethod1, myMethod2} from 'myMethods';,导入的方法不必像变量那样被取消引用。虽然已经说过我不确定点表示法是否真的被视为变量。
标签: javascript class module ecmascript-6