JS CLONE使用法

  • 时间:2018-06-06 01:46 作者:myersguo 来源:myersguo 阅读:385
  • 扫一扫,手机访问
摘要:js 代码:a=5;b=a;b=4;console.log(a,b);结果输出:5 4而:a={}b=ab.title="title"console.log(a,b);If you use an = statement to assign a value to a var with an objec

js 代码:

a=5;

b=a;

b=4;

console.log(a,b);

结果输出:

5 4

而:

a={}

b=a

b.title="title"

console.log(a,b);

If you use an = statement to assign a value to a var with an object on the right side, javascript will not copy but reference the object

对象的赋值,是传递的引使用,假如想要传值,则能用jquery:

$.extend({}, obj);

例子2:

a = {

'title': 'title',

'child': {

'info': {

'title': 'child title',

}

}

}

b = $.extend({}, a.child);

b.info.title="new title";

console.log(a.child.info.title, b.info.title);

结果输出:new title new title

这是由于:

The merge performed by $.extend() is not recursive by default; if a property of the first object is itself an object or array, it will be completely overwritten by a property with the same key in the second or subsequent object. The values are not merged. This can be seen in the example below by examining the value of banana. However, by passing true for the first function argument, objects will be recursively merged.

第一个参数传true,进行 deepcopy,即对递归copy,对象的值也被copy了。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
手机二维码手机访问领取大礼包
返回顶部