const {variable} = require('xxx')是什么意思?

时间:2018-10-11 02:08:50

标签: javascript

我一直在看下面的语法,并试图理解有什么不同。我在Google上进行了一些搜索,但没有得到答案。

const  plugin1 = require('awesome-typescript-loader');
const { plugin2 } = require('awesome-typescript-loader');

它们相同吗?有人可以解释有什么不同吗?

2 个答案:

答案 0 :(得分:2)

简单的解释

对于那些懒于搜索的人,以下是对破坏性分配的简单解释:

第一种情况:

const  plugin1 = require('awesome-typescript-loader');

在上述情况下,变量 plugin1 接收模块'awesome-typescript-loader'导出的 object

然后,如果要访问其属性,则必须这样调用它:  plugin1.propertyFoo

第二种情况:

const { plugin2 } = require('awesome-typescript-loader');

在第二种情况下,发生的事情是您已经知道模块'awesome-typescript-loader'导出的对象具有名为 plugin2 属性,但是您 不想导入具有所有属性的整个对象,例如 first 方案。

因此,您使用这种语法{ plugin2 }基本上意味着您创建了仅接收属性 plugin2 的局部变量 plugin2 'awesome-typescript-loader'默认导出的对象中获取。

  

这可以在 对象 数组 上完成。

正确的定义

尽管上面的解释在很多情况下是正确的,但实际上取决于您要导入的内容的导出类型。因此,它可能不适用于所有情况。请查看导出文档here,以获取更详细和准确的信息。

此外,有关正确的定义和语法,请查看Destructuring Assignment

我希望对您有所帮助!

答案 1 :(得分:0)

多亏了Ricky Mo,我得到了我想要的一切

Destructuring assignment