export 常见有几种导出方式:命名行内导出,命名子句导出,默认导出
命名子句导出是通过在大括号内指定导出的变量。
const foo = 'foo';
const bar = 'bar';
export {foo};
export {bar as baz, foo};
export {foo, bar};
在这里我想到,在 JavaScript 中 {} 是一个块。每个块都有其作用域
因此子句导出是创建了一个单独的作用域,在该作用域内指定要导出的变量,但是这么想的话 在指定的作用域中又不能创建方法并返回
例如做到这样:export { hi(){} }
当我通过命名行导出和默认导出方法时:
export function hi(){};
export default function(){};
对于该 export 语句
1,创建了 hi 方法 并
2,返回 hi 方法的引用 给 export
3,export 创建 default
4,创建 匿名方法
5,返回匿名方法的引用给 default
从 1-2,3-5 来看,对于方法都是创建了一个作用域块的引用给到 export 。而在 javascript 中 {} 也是简写对象的一种形式,在这里并不是为 export 创建一个对象,返回该对象的引用。
那么我的问题来了,如果对于 export “{}”并不是一个作用域块,不能在其中声明方法,初始变量等。也不是对象简写,那么 子句块的作用就只限于用 as 进行别命名了。真的有这个必要么?在导出命名行进行 as 不是更好吗??
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.