【发布时间】:2015-11-21 01:20:39
【问题描述】:
我正在将 BackboneJS (v1.2.2) 项目转换为带有 BabelJS 的 ES6。
我注意到两者之间存在差异:
import Backbone from 'backbone'
和
import * as Backbone from 'backbone'
在阅读here 之后,我了解到前者正在导入 Backbone 的默认导出,而后者允许我“导入整个模块并通过属性表示法引用其命名导出”。
我很难理解这些之间的区别。在这两种情况下都会返回对象,但前者似乎用额外的属性/方法装饰。至少我会假设导入“整个模块”会有更多的属性/方法......但我看到的是相反的。
【问题讨论】:
-
“附加属性/方法”的例子有哪些?
-
第一个实例似乎用其他插件的属性装饰。例如,我加载了“backbone.localStorage”插件,我看到在 Backbone 上定义了“LocalStorage”,但是,现在我想起来,这是有道理的,因为“backbone.localStorage”将自己写入全局 Backbone 对象。后者返回一个不受“backbone.localStorage”修改影响的命名空间实例。
标签: javascript import ecmascript-6