我想知道是否有人可以对以下主题有所了解。

我有很多功能和属性的“重”对象:

var HeavyObject = {
   property1:{}
   property2:1,
   propertyN:false,
   func1:function(){}
   func2:function(){}
   ....
   funcN:function(){}
}


接下来,我有一个“轻量级”对象:

var LightWheight =  {
   property1: {
          sub_property:HeavyObject
   },
   property2: {
          sub: {
               sub:{
                   flag:true,
                   heavy:HeavyObject
               }
          }
   }
}


我的问题是“ LightWeight”对象实际上有多重,因为它有两个对“ HeavyObject”的引用?它是否仅保留两个指向“ HeavyObject”的指针,还是引用方式不同?

我了解这可能会因JavaScript引擎而异,但我想了解一般想法。

任何澄清是极大的赞赏。

最佳答案

它仅保留两个指向“ HeavyObject”的指针还是
  参考做不同?


它保留两个指向HeavyObject的指针。

如果要真正测试,请更改两个指针中的任何一个并检查它们指向的两个指针的值。

如果这样做,您的LightWheight将会变得很沉重,

var LightWheight = {
    property1: {
        sub_property: {
            property1: {}
            property2: 1,
            propertyN: false,
            func1: function () {}
            func2: function () {}....
            funcN: function () {}
        }
    },
    property2: {
        sub: {
            sub: {
                flag: true,
                heavy: property1: {}
                property2: 1,
                propertyN: false,
                func1: function () {}
                func2: function () {}....
                funcN: function () {}
            }
        }
    } }

09-25 15:45