Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用spread操作符有什么作用?_Javascript - Fatal编程技术网

Javascript 使用spread操作符有什么作用?

Javascript 使用spread操作符有什么作用?,javascript,Javascript,我只是在一些代码中注意到了这一点,我一直试图理解它在做什么 this.rows[rowIndex][cell] = event.target.value; this.rows = [...this.rows]; 在我看来,它只是将this.rows赋值给它自己。是否有其他一些使用扩展运算符的方法是有意义的?或者它只是一个bug?扩展语法将提供原始数组的浅拷贝 这可能有用的原因至少有两个: 对原始行属性的任何引用都不会受到以后对复制数组的直接属性的赋值的影响 如果行的原始值不是真数组,而是it

我只是在一些代码中注意到了这一点,我一直试图理解它在做什么

this.rows[rowIndex][cell] = event.target.value;
this.rows = [...this.rows];

在我看来,它只是将
this.rows
赋值给它自己。是否有其他一些使用扩展运算符的方法是有意义的?或者它只是一个bug?

扩展语法将提供原始数组的浅拷贝

这可能有用的原因至少有两个:

  • 对原始
    属性的任何引用都不会受到以后对复制数组的直接属性的赋值的影响
  • 如果
    的原始值不是真数组,而是iterable(类似数组),则扩展语法赋值的结果仍然是真数组
这里有一个人工制作的物体来说明这两点:

class-Foo{
构造函数(n){//定义类似数组的对象
该行={
//定义迭代器
[符号.迭代器]:函数*(){
for(设i=0;i

。作为控制台包装{max height:100%!important;top:0;}
它需要一个浅拷贝。如果原始的
this.rows
类似于数组(iterable),但不是真正的数组,那么它将在赋值后成为一个数组。基本上与
this.rows=this.rows.slice()做相同的事情。
您必须向我们展示更多的上下文来理解这一点。什么是
event.target.value