美文网首页
关于a.x = a = {n:2};的理解

关于a.x = a = {n:2};的理解

作者: infi_ | 来源:发表于2021-07-31 15:40 被阅读0次
    var a = {n:1};
    a.x = a = {n:2};
    console.log(a)
    console.log(a.x)
    
    

    a.x打印出来是undefined
    为什么是这样的呢
    首先 表达式运算都是从左至右
    a.x=a={n:2}
    明显都是表达式
    在函数式语言中 对任何对象的操作都是函数执行的结果 包括这个a.x
    a.x经过引擎操作此刻指向的是原始的a 并空悬着
    直到a={n:2}时 又把a赋予了新的值
    而此刻指向原始a的a.x被抛弃变的不可访问 此时原始a应该是{n:1,x:{n:2}} 但是访问不到了
    我们只能访问到现在的a 现在的a是{n:2}

    相关文章

      网友评论

          本文标题:关于a.x = a = {n:2};的理解

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