首页 > 前端面试题のjavascript引用类型

前端面试题のjavascript引用类型

这个属于哪个知识点?好像看到过相关知识,但想不起来了

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

a = {"x":3};
console.log(b.x);


见本人此贴:http://.com/q/1010000000507424


var a = {"x": 1};    //对象是引用类型,这里把对象{"x": 1}的引用地址赋值给变量a
var b = a;    //把a所引用的对象地址赋值给b,此时a和b指向同一个对象
a.x = 2;    //把a所指向对象的属性x设置为2,此时该对象为{"x": 2}
b.x;     //由于a和b指向同一个对象,所以b.x = a.x = 2

a = {"x":3};    //这里重新对a进行赋值,把一个新对象{"x": 3}的引用地址赋值给变量a,此时a指向这个新对象{"x": 3},而b仍然指向原来的对象{"x": 2}
console.log(b.x);    //这里输出2就顺理成章了

整个过程就像我在注释里写的那样,最后console.log(b.x)的值为2
建议题主可以翻阅一下《Javascript高级程序设计》,我之前看的是第二版,有一章讲解了引用类型和值类型,看完应该就懂了,或者参考一下网上各路大神的博客


属于数据类型中引用类型这类知识点的


a = {"x":3};这句a估计是new,另寻新欢了,b还是原来的b。可以这么理解吧。


js中对象是引用类型的,记住这一点,只要寻找变量当前指向哪一个对象即可

【热门文章】
【热门文章】