Javascript导入/导出语句

时间:2018-05-17 18:54:25

标签: javascript

在javascript中,它们是否相似(第1部分和第2部分)?

[第1部分]

const sething = () => {
  //Something
}

const sething1 = () => {
  //Something 
}

[第2部分]

const sething = () => {
  //Something 
}

export default sething

然后

import sething from /location 

const sething1 = () => {
  //Something 
}

如果他们两个都不相似,有人可以告诉我为什么不呢?并建议阅读任何文章。

如果我们为类做这样的事情会是什么结果呢?

2 个答案:

答案 0 :(得分:1)

我认为你问:“第1部分是否等同于第2部分”,其中第2部分在单独的文件中定义sething,然后将其导入与sething1相同的范围。< / p>

我的回答是:

  • 有些方法是等价的
  • 这些方法有些不同

它们如何相同?

第1部分第2部分中,您最终将sethingsething1定义为常量。如果您关心的只是您的应用程序的行为,那么在大多数情况下,我会将它们视为等效。

它们有何不同?

  1. 如果您在其他地方重复使用sething,您可以轻松地将其导入其中。您可以在第2部分中执行此操作,但不能在第1部分中重构或重复自己。或者也许有一个大文件。
  2. 如果您希望重构名称sething,则第1部分第2部分更容易。在第2部分中,大多数IDE将更改导入的名称,而不更改导入文件中常量的名称。如果它在其他地方使用,则不会重命名这些用途。这可以通过使用命名导出而不是默认导出轻松修复。
  3. 我希望这有助于回答你的问题!

答案 1 :(得分:1)

两个例子基本上都是这样做的。

在第一个示例中,您在一个文件中有两个不是===的函数,在第二个示例中,您定义了两个函数,它们也不是===,只有区别在于,您进口其中一个。

我的意思是

  

类似?是。等于?否。

是他们显然不是一回事。导入/导出远没有将两个函数放在一个文件中的表现,而且它的代码更多。

两者的功能相同,但在以后导入的文件中定义函数也有好处。

如果您需要,可以多次使用它们,然后您可以在一个地方轻松更改它,而不必在任何地方更改功能。否则,这将是Code Duplication