Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么使用导出和导入?_Javascript_Oop_Object_Ecmascript 6 - Fatal编程技术网

Javascript 为什么使用导出和导入?

Javascript 为什么使用导出和导入?,javascript,oop,object,ecmascript-6,Javascript,Oop,Object,Ecmascript 6,这个问题是关于ES6的,而不是关于全局变量。 当引入新的ES2015export或export default时。制作它们是为了让您可以使用import在其他地方导入/获取相同的变量、值或项目。所以我有一个简单的问题为什么我们应该使用导出和导入,而不是仅仅创建一个类的简单对象并通过它获取项目,或者仅仅创建静态或全局变量?(如果我遗漏了一些内容,或者如果我在评论中错误地问了下面的问题,而不是投票否决,请纠正我,我们将不胜感激。谢谢!) 编辑:我知道这样一个事实,即它可以使你的代码更加清晰,也可以轻

这个问题是关于ES6的,而不是关于全局变量。
当引入新的ES2015
export
export default
时。制作它们是为了让您可以使用
import
在其他地方导入/获取相同的变量、值或项目。所以我有一个简单的问题为什么我们应该使用导出和导入,而不是仅仅创建一个类的简单对象并通过它获取项目,或者仅仅创建静态或全局变量?(如果我遗漏了一些内容,或者如果我在评论中错误地问了下面的问题,而不是投票否决,请纠正我,我们将不胜感激。谢谢!)


编辑:我知道这样一个事实,即它可以使你的代码更加清晰,也可以轻松地将代码放入多个文件中,但让我们假设我们有
first.js
second.js
,并且在
first.js
中有一个名为
names
的变量,我们想在
second.js
中得到它。现在,您可以使用
import
export
或在
second.js
中创建一个对象并通过该对象访问我们的变量。那么,为什么使用导出和导入更好呢?

export
是作为ES2015模块标准的一部分引入的,与
import
一起使用(您需要明确声明以后需要导入的内容)

在实现这些标准模块之前,将Javascript代码拆分为多个文件,并且不让所有对象污染全局对象,这只能通过使用非标准模块定义和/或模块加载程序(例如)来实现。最简单的情况是将代码包装在立即调用的函数中。ES6/2015只是标准化了Javascipt模块


现在你问为什么不在很多文件中都有Javascript对象?答案是

你的意思是“为什么要将代码拆分为多个文件,而不是将所有代码放在一个巨大的文件中?”那么……如何将一个模块(读取:文件)中定义的对象之一放入另一个模块中?正如你所说:全局变量。这真的很恶心,而且容易产生命名冲突。因此,您可以显式地
import
something,而不是隐式地假定其全局存在。@ChrisG您可以创建多个文件并使用对象,对吗?如果您有Java背景,我认为在Java中没有什么不同。为什么不用Java将所有东西都全球化,这样就不需要编写所有这些讨厌的导入?等待这是因为这将是一团乱麻,Java从不允许这样做,与JS相反。通过在第二个中创建一个对象并通过该对象访问我们的变量-这是什么意思?这假设该对象是全局的。在模块化环境中,情况并非如此。