Javascript 无法理解为什么使用排列运算符

Javascript 无法理解为什么使用排列运算符,javascript,arrays,spread-syntax,Javascript,Arrays,Spread Syntax,我正在使用ngx图表(Angular2+的图表库),我发现这行代码我不理解 @Input() activeEntries: any[] = []; /* ... */ /* Then, in a function */ this.activeEntries = [...this.activeEntries]; 对我来说,它没有效果。你知道这个用法和它的作用吗 感谢您将this.activeEntries的内容传播到数组文本中。此代码正在创建该数组的副本 然后将该副本的引用分配回this.a

我正在使用ngx图表(Angular2+的图表库),我发现这行代码我不理解

@Input() activeEntries: any[] = [];

/* ... */

/* Then, in a function */
this.activeEntries = [...this.activeEntries];
对我来说,它没有效果。你知道这个用法和它的作用吗

感谢您

将this.activeEntries的内容传播到数组文本中。此代码正在创建该数组的副本


然后将该副本的引用分配回
this.activeEntries
覆盖保留的原始引用。从上下文中不清楚为什么需要这样做。

数组是一个对象。JS中的对象是使用引用指定的。所以,如果直接赋值,两个变量将指向相同的位置<代码>[…this.activeEntries]这将生成一个副本。这与
array.slice(0)
创建一个新数组而不是复制一个引用是一样的。问题:有什么原因比更直接、更清晰的
array.from()
更可取吗?我希望这只是为了一致性-同一个库大量使用
array=[new\u element,…array]
作为前置操作。