与Javascript相关 - 参考变量

时间:2017-11-08 04:59:58

标签: javascript

我正在为Web开发人员阅读Wrox Professinal Javascript一书。在一章中,作者解释了不同的变量类型 - 原始和引用。对于引用类型变量,这写在书中 - "引用值是存储在内存中的对象。与其他语言不同,JavaScript不允许直接访问内存位置,因此不允许直接操作对象的内存空间。当您操作对象时,您实际上正在处理对该对象的引用而不是实际对象本身。出于这个原因,这些值可以通过引用来访问。" 任何人都可以解释它的含义。

2 个答案:

答案 0 :(得分:2)

是否可以使用别名取决于数据类型。对象,数组和函数将通过引用处理,并且可以进行别名处理。其他类型基本上是原子的,变量存储值而不是对值的引用。

Already answered here

答案 1 :(得分:0)

  

参考值是存储在内存中的对象。

这指定Javascript中的对象与引用链接。这意味着,当您执行var obj = {};时,会在内存中创建一个对象并存储在位置x100006中。因此obj将保留此x100006值,而不是{}

  

与其他语言不同,JavaScript不允许直接访问内存位置,因此不允许直接操作对象的内存空间。

这就是说,因为我知道上面例子中obj的内存位置,我无法设置变量来手动指向此位置。实际上,你不会知道位置。您只知道有一个指针引用和赋值操作复制该值。因此,当您执行var newObj = obj时,您将复制引用而不是对象值。您仍然不知道可以播放的内存位置,例如C和C ++。

  

当你操纵一个对象时,你真的在​​处理对该对象的引用而不是实际的对象本身。因此,这些值可以通过引用来访问

现在我们知道objnewObj引用了对象而不是实际对象,如果你操纵了这个值,你就会在这个内存位置对对象进行更改。因此,如果我执行obj.x = 'foo',这也将反映在newObj中。