javascript嵌套的对象被修改时log不符合的问题
var a = {a:1,b:2,c:3};console.log(a);a.a = 2;console.log(a);var b = {a:1,b:{a:2},c:3};console.log(b);b.b.a=4;console.log(b);
输出:
Object {a=1,b=2,c=3} //修改前
Object {a=2,b=2,c=3} //修改后
Object {a=1,b={a=4},c=3} //修改前
Object {a=1,b={a=4},c=3} //修改后
console.log(Object)时,嵌套的对象会有各种问题
沙:因为控制台的输出是引用,object的话,console出来的是引用同一个
屈屈:
var o = {a: 1, b: {c: 2}};
console.log(o);
setTimeout(function(){o.b.c = 3; console.log(o);}, 5000);
5秒前看还是5秒后看竟然出现不同的结果,两个log还是会保持相同。
还出现了诡异的情况:
屈屈:
var o = {a: 1, b: {c: 2}};
console.log(JSON.stringify(o));
o.b.c = 3;
console.log(JSON.stringify(o));
序列化就没问题了
结论:这种情况,专门去看还比较容易发现,如果是在调bug,估计就苦逼了。做好自己的,不要总相信看到的。
转载于:https://www.cnblogs.com/frostbelt/archive/2012/07/19/2599041.html
javascript嵌套的对象被修改时log不符合的问题相关推荐
- JavaScript 中的对象拷贝(深拷贝、浅拷贝)
对象是 JavaScript 的基本块.对象是属性的集合,属性是键值对.JavaScript 中的几乎所有对象都是位于原型链顶部 Object 的实例. 介绍 如你所知,赋值运算符不会创建一个对象的副 ...
- 17个实用的JavaScript数组和对象的方法
原文:Useful Javascript Array and Object Methods 作者:Robert Cooper 译者:Jim Xiao 前段时间,我收听了一个很棒的Syntax FM播客 ...
- JavaScript 数组 函数 对象
数组 数组的概念 数组就是一组数据的集合,并且存储在单个变量名下 数组的创建方式 利用new创建数组 var 数组名 = new Array();var arr = new Array();//创建了 ...
- JavaScript获取数组对象里面的键(key)和值(value)
JavaScript获取数组对象里面的键key和值value对象键值 知识回调 场景复现 三种方法获取数组对象里的键值 1.Object.keys() 2.Object.entries(obj) 3. ...
- js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...
1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...
- javascript学习之对象基础
2019独角兽企业重金招聘Python工程师标准>>> javascript学习之对象基础 面向对象语言 面向对象语言需要向开发者提供四种基本能力 封装:把相关信息(数据和方法)存储 ...
- 对象删除某个属性_充分了解JavaScript中【对象】的概念(二)
点击上方「蓝字」关注我们 之前的文章: 充分了解JavaScript中[对象]的概念(一) 这篇文章我们继续来讲解JavaScript中[对象]的概念,因为这是一系列的文章,所以建议从第一篇文章开始看 ...
- JavaScript中的对象,如何创建对象,创建对象的7种模式
ECMA-262把对象定义为:"无需属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说明对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名 ...
- 04-前端技术_ javaScript内置对象与DOM操作
目录 五,javaScript内置对象与DOM操作 1,JavaScript对象定义和使用 2,JavaScript内置对象 2.1 Array数组 2.1.1 创建方式 2.1.2 常用属性: 2. ...
最新文章
- css flexbox模型_5分钟内学习CSS Flexbox-初学者教程
- 【机器视觉】 dev_error_var算子
- 函数默认形参与占位参数
- windows 2008 server NTP Server
- 查看mysql语句运行时间
- redis集群信息分析-cluster info-cluster nodes
- python html转word文档_Python实现将HTML转换成doc格式文件的方法示例
- [每日一题] OCP1z0-047 :2013-08-08 相关子查询中EXISTS的使用.....................................28...
- java day12【Object类、常用API】
- spring mvc 异常处理手动回滚 SQL log不回滚
- python pandas 之drop()函数
- LINUX:lpr不能打印,可以试试lp
- PPM文件的正确打开方式
- 宋登高 php,HDwiki百科建站第一期
- VS2010的aspx文件中的html代码的格式化整理的方法
- 《从一到无穷大:科学中的事实和臆测》小记
- pmos低电平驱动_MOS管驱动电路总结
- ROS2 基础概念 话题
- nand flash多少次写_这个比QQ空间还古老的网站,是多少女孩的精神家园?
- eas库存状态调整单不能反审核_金蝶EAS供应链管理标准操作规程(存货核算).doc