Webpack javascript Object.assign vs"=&引用;
我正在用webpack运行一个项目,遇到了一个问题。我解决了这个问题,但我想了解事情是如何运作的 我有一个带有模块名的数组,如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”。每个模块都有特定的
[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
时,它不会反映在objecta
中。但在第二种情况下,当我们更改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生成的代码的情况下很难说清楚。了解如何导入阵列中的每个模块也会有所帮助。