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不符合的问题相关推荐

  1. JavaScript 中的对象拷贝(深拷贝、浅拷贝)

    对象是 JavaScript 的基本块.对象是属性的集合,属性是键值对.JavaScript 中的几乎所有对象都是位于原型链顶部 Object 的实例. 介绍 如你所知,赋值运算符不会创建一个对象的副 ...

  2. 17个实用的JavaScript数组和对象的方法

    原文:Useful Javascript Array and Object Methods 作者:Robert Cooper 译者:Jim Xiao 前段时间,我收听了一个很棒的Syntax FM播客 ...

  3. JavaScript 数组 函数 对象

    数组 数组的概念 数组就是一组数据的集合,并且存储在单个变量名下 数组的创建方式 利用new创建数组 var 数组名 = new Array();var arr = new Array();//创建了 ...

  4. JavaScript获取数组对象里面的键(key)和值(value)

    JavaScript获取数组对象里面的键key和值value对象键值 知识回调 场景复现 三种方法获取数组对象里的键值 1.Object.keys() 2.Object.entries(obj) 3. ...

  5. js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...

    1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...

  6. javascript学习之对象基础

    2019独角兽企业重金招聘Python工程师标准>>> javascript学习之对象基础 面向对象语言 面向对象语言需要向开发者提供四种基本能力 封装:把相关信息(数据和方法)存储 ...

  7. 对象删除某个属性_充分了解JavaScript中【对象】的概念(二)

    点击上方「蓝字」关注我们 之前的文章: 充分了解JavaScript中[对象]的概念(一) 这篇文章我们继续来讲解JavaScript中[对象]的概念,因为这是一系列的文章,所以建议从第一篇文章开始看 ...

  8. JavaScript中的对象,如何创建对象,创建对象的7种模式

    ECMA-262把对象定义为:"无需属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说明对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名 ...

  9. 04-前端技术_ javaScript内置对象与DOM操作

    目录 五,javaScript内置对象与DOM操作 1,JavaScript对象定义和使用 2,JavaScript内置对象 2.1 Array数组 2.1.1 创建方式 2.1.2 常用属性: 2. ...

最新文章

  1. css flexbox模型_5分钟内学习CSS Flexbox-初学者教程
  2. 【机器视觉】 dev_error_var算子
  3. 函数默认形参与占位参数
  4. windows 2008 server NTP Server
  5. 查看mysql语句运行时间
  6. redis集群信息分析-cluster info-cluster nodes
  7. python html转word文档_Python实现将HTML转换成doc格式文件的方法示例
  8. [每日一题] OCP1z0-047 :2013-08-08   相关子查询中EXISTS的使用.....................................28...
  9. java day12【Object类、常用API】
  10. spring mvc 异常处理手动回滚 SQL log不回滚
  11. python pandas 之drop()函数
  12. LINUX:lpr不能打印,可以试试lp
  13. PPM文件的正确打开方式
  14. 宋登高 php,HDwiki百科建站第一期
  15. VS2010的aspx文件中的html代码的格式化整理的方法
  16. 《从一到无穷大:科学中的事实和臆测》小记
  17. pmos低电平驱动_MOS管驱动电路总结
  18. ROS2 基础概念 话题
  19. nand flash多少次写_这个比QQ空间还古老的网站,是多少女孩的精神家园?
  20. eas库存状态调整单不能反审核_金蝶EAS供应链管理标准操作规程(存货核算).doc

热门文章

  1. 设备树与驱动的关系_Linux CommonClock Framework分析之四 gpio clk gate驱动实现
  2. outlook 单独安装_民强村排烟管道安装公司
  3. 20201014 《计算感知》第2节课 笔记
  4. mysql 怎么实现组内排名_MySQL 实现排名(分组排名)
  5. 2020-05-02 自动控制原理常用术语
  6. Git复习(六)之标签管理
  7. poj3253 优先队列
  8. 小甲鱼-010-012列表
  9. Django restful framework之 rest接口设计规范
  10. linux --redis的部署 即主从