当前位置: 首页 > news >正文

Vue 对象扩展运算符(…)

当编写一个方法时,我们允许它传入的参数是不确定的。这时候可以使用对象扩展运算符来作参数,看一个简单的列子:

1

2

3

4

5

6

7

8

function jspang(...arg){

    console.log(arg[0]);

    console.log(arg[1]);

    console.log(arg[2]);

    console.log(arg[3]);

}

jspang(1,2,3);

这时我们看到控制台输出了 1,2,3,undefined,这说明是可以传入多个值,并且就算方法中引用多了也不会报错。

扩展运算符的用处:

我们先用一个例子说明,我们声明两个数组arr1和arr2,然后我们把arr1赋值给arr2,然后我们改变arr2的值,你会发现arr1的值也改变了,因为我们这是对内存堆栈的引用,而不是真正的赋值。

1

2

3

4

5

let arr1=['www','jspang','com'];

let arr2=arr1;

console.log(arr2);

arr2.push('shengHongYu');

console.log(arr1);

控制台输出:

1

2

["www", "jspang", "com"]

["www", "jspang", "com", "shengHongYu"]

这是我们不想看到的,可以利用对象扩展运算符简单的解决这个问题,现在我们对代码进行改造。

1

2

3

4

5

6

7

let arr1=['www','jspang','com'];

//let arr2=arr1;

let arr2=[...arr1];

console.log(arr2);

arr2.push('shengHongYu');

console.log(arr2);

console.log(arr1);

现在控制台预览时,你可以看到我们的arr1并没有改变,简单的扩展运算符就解决了这个问题。

拷贝

<script>let person={name: "admin",age: 12,wife:"迪丽热巴"}let person2={...person}console.log(person2===person);//falseconsole.log(person2);//{name: 'admin', age: 12, wife: "迪丽热巴"}
</script>

合并对象

<script>const obj1 = { a: 1 };const obj2 = { b: 2 };const obj3 = { a: 5, c: 3 };let newObj ={...obj1,...obj2,...obj3}console.log(newObj); // { a: 5, b: 2 , c:3}
</script>
http://www.lryc.cn/news/34506.html

相关文章:

  • 又是活动 没啥好说的 送代码
  • ARP报文内容详细分析
  • js一键保存当前页面所有图片
  • 【Spring AOP】如何统一“拦截器校验、数据格式返回、异常返回”处理?
  • 规划数据指标体系方法(下)——新海盗模型
  • UML学习备忘录
  • Vue3手写分页在分页的基础上用到Pagination 分页组件
  • 冥想第七百二十四天
  • Jenkins+Docker自动化部署项目
  • TX2配置RealSense D455相机SDK和ros驱动
  • Sentinel架构篇 - 来源访问控制
  • 多线程的Thread 类及方法
  • QT入门Item Views之QTreeView
  • Servlet | Servlet简单入门——构建第一个Servlet项目
  • Spring的IOC/DI,依赖注入的实现
  • 【tensorflow onnx】TensorFlow2导出ONNX及模型可视化教程
  • 天梯赛训练L1-013--L1-015
  • 进程(操作系统408)
  • 浅谈运维工程师的开发能力的培养
  • Netcode升级到1.2.0网络变量的变化的变化
  • 冥想第七百二十二天
  • AB测试——流程介绍(定义问题和指标选取)
  • Linux(Centos)安装Minio集群
  • LeetCode 1662. 检查两个字符串数组是否相等 / 795. 区间子数组个数 / 剑指 Offer 47. 礼物的最大价值
  • 【C++】缺省参数函数重载
  • Hbuilder 下载与安装教程
  • Mybatis工程升级到FlunetMybatis后引发的问题以及解决方法
  • Oracle VM VirtualBox6.1.36导入ova虚拟机文件报错,代码: E_INVALIDARG (0x80070057)
  • Superset数据探索和可视化平台入门以及案例实操
  • VisualSP Enterprise - February crack