美文网首页
js指针问题

js指针问题

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-07-13 11:27 被阅读0次
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);

相关文章

网友评论

      本文标题:js指针问题

      本文链接:https://www.haomeiwen.com/subject/jekacktx.html