对象引用如何在JavaScript中工作

时间:2014-02-14 07:27:56

标签: javascript

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

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

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引擎而异,但我想了解一般的想法。

非常感谢任何澄清。

1 个答案:

答案 0 :(得分:3)

  

它只保留两个指向“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 () {}
            }
        }
    } }