js指针问题

2020-07-13  本文已影响0人  练习时长2年半的个人练习生
var a = {n:1};
var b = a;
a = {n:2};
a.x = a ;
console.log(a.x);
console.log(b.x);

运算符优先级 . > =

答案



    // 变量a 指针指向对象 {n:1}
    var a = { n: 1 };
    // 变量b 指针指向对象 {n:1}
    var b = a;
    // 变量b指针不变,仍指向{n:1}; 变量a指针改为指向对象 {n:2}
    a = { n: 2 };
    // 运算符的优先级 . > =  先给对象a增加x属性,再给x属性赋值。此时x属性的值指向a对象自身。即:a = {n:2,x:a}
    a.x = a;
    console.log(a.x); // {n:2,x:a}
    // 由于b指针没变,还是指向{n:1} ,所以b.x: undefined
    console.log(b.x);
上一篇 下一篇

猜你喜欢

热点阅读