码迷,mamicode.com
首页 > Web开发 > 详细

js对象等号赋值的bug

时间:2019-08-20 10:48:52      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:结果   div   保存   pre   类型   asc   ==   对象   bug   

var a = {n: 1};
var b = a;
a.x = a = {n: 2};

console.log(a.x);
console.log(b.x);
有道题是这样的,觉得很奇葩,分析一下

 

 

1.对象 引用类型

对象属于引用类型,c,java,js里面都是的,对象就是引用类型,包括数组。

上面的a是引用类型,a保存的是对象 {n: 1}的地址,对这个对象的引用。b = a 。把a里面的地址赋值给了b,b也指向{n: 1}这个对象的物理地址。所以,a 一旦做赋值更改,修改的是a对引用的修改。b也同时修改,b修改的时候,a也会被修改。这就是引用类型

 

2.

var a = {n:1};
var b = a;
a.x = a = {n:2};
console.log(a===b.x); //true

  第二个奇葩结果

js对象等号赋值的bug

标签:结果   div   保存   pre   类型   asc   ==   对象   bug   

原文地址:https://www.cnblogs.com/chenyi4/p/11381371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!