美文网首页
var a = {n:1};题个人理解

var a = {n:1};题个人理解

作者: sorry510 | 来源:发表于2019-08-16 17:06 被阅读0次
    var a = {n:1};  
    var b = a;
    a.x = a = {n:2}
    console.log(a)  // {n: 2}
    console.log(b)  // {n: 1, x: {n: 2}}
    a.n = 3
    console.log(b) // {n: 1, x: {n: 3}}
    
    第三行会先执行a.x = undefined
    这时候a = b = {n:1, x:undefined}
    然后从右往左执行
    a = {n:2},这时候会发生写时复制,a与b不再指向同一个对象,这时候的a.x已经是b.x了
    这时候a = {n:2},b = {n:1, x:undefined}
    最后a.x = a,结果是 b = {n: 1, x: {n: 3}}

    相关文章

      网友评论

          本文标题:var a = {n:1};题个人理解

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