Webpack javascript Object.assign vs"=&引用;

Webpack javascript Object.assign vs"=&引用;,javascript,webpack,dynamic-import,Javascript,Webpack,Dynamic Import,我正在用webpack运行一个项目,遇到了一个问题。我解决了这个问题,但我想了解事情是如何运作的 我有一个带有模块名的数组,如[module1,module2,module3]。 我使用foreach循环此数组,并使用以下语法导入每个模块 import('./' + moduleName).then(function (promise) { var me = promise.default(element); }) 在每个模块中,我创建并返回对象“me”。每个模块都有特定的

我正在用webpack运行一个项目,遇到了一个问题。我解决了这个问题,但我想了解事情是如何运作的

我有一个带有模块名的数组,如
[module1,module2,module3]
。 我使用
foreach
循环此数组,并使用以下语法导入每个模块

import('./' + moduleName).then(function (promise) {
      var me = promise.default(element);    
})
在每个模块中,我创建并返回对象“me”。每个模块都有特定的功能和参数,这些对于问题并不重要

export default function (element, options) {
     var me = this;
     // some other code
     return me;
}
当我在一个页面上有两个或多个模块时,就会出现问题。赋值me=this,总是以某种方式创建具有相同参数的相同对象,即使我传递了不同的选项

我通过将赋值改为
varme=Object.assign({},this)解决了这个问题
但我不明白第一个怎么了。

你能给我一些解释吗?

对象。分配
克隆对象属性。但是
=
将复制对象的引用

您可以在下面的示例中进行检查

您可以看到
me
对象是使用
object.assign
分配的,当我们更改
me.x
时,它不会反映在object
a
中。但在第二种情况下,当我们更改
me2.x
时,它也会更新值
b.x

var a={x:1};
var me=Object.assign({},a);
me.x=2;
控制台日志(a);
console.log(me);
var b={x:1};
var-me2=b;
me2.x=2;
控制台日志(b);

控制台日志(me2)这种行为似乎是由于在不知道Webpack生成的代码的情况下很难说清楚。了解如何导入阵列中的每个模块也会有所帮助。