【发布时间】:2017-11-23 23:42:21
【问题描述】:
这个问题是关于 ES6 而不是全局变量。
当引入新的 ES2015 export 或 export default 时。制作它们是为了让您可以使用import 在其他地方导入/获取相同的变量、值或项目。所以我有一个简单的问题。 为什么我们应该使用导出和导入,而不是仅仅创建一个简单的类对象并通过它获取项目,或者只是创建静态或全局变量?
我知道它可以用来让你的代码更简洁,也可以轻松地将代码放入多个文件中,但我们假设我们有first.js 和second.js,并且我们有一个名为names 的变量在我们想要在second.js 中获得的first.js 中。现在您可以使用import 和export 或通过在second.js 中创建一个对象并通过该对象访问我们的变量来做到这一点。那么为什么使用导出和导入更好呢?
【问题讨论】:
-
您的意思是“为什么要将代码拆分为多个文件,而不是将所有代码放在一个巨大的文件中?”嗯……
-
如何将一个模块中定义的对象之一(读取:文件)放入另一个模块?正如你所说:全局变量。这真的很糟糕,而且很容易发生命名冲突。因此,您可以明确地
import某事,而不是隐式地假设它的全球存在。 -
@ChrisG 你可以制作多个文件并使用对象对吧?
-
如果你有 Java 背景,我认为 Java 没有什么不同。为什么不让 Java 中的所有内容都全局化,这样就不需要编写所有这些讨厌的导入?等等……那是因为这将是一团糟,与 JS 相比,Java 从来不允许这样做。
-
通过在第二个中创建一个对象并通过该对象访问我们的变量 - 这是什么意思?这假设这个对象是全局的。而在模块化环境的情况下则不然。
标签: javascript oop object ecmascript-6