【问题标题】:Related to Javascript - Reference Variable与 Javascript 相关 - 参考变量
【发布时间】:2017-11-08 04:59:58
【问题描述】:

我正在为 Web 开发人员阅读一本书 Wrox Professinal Javascript。在一章中作者正在解释不同的变量类型 - 原始和引用。对于引用类型变量,这本书是这么写的——《引用值是存储在内存中的对象。与其他语言不同,JavaScript不允许直接访问内存位置,因此不允许直接操作对象的内存空间。当你操作一个对象,你实际上是在处理对该对象的引用,而不是实际的对象本身。因此,这些值被称为通过引用访问。 谁能解释一下是什么意思。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您是否可以给某些东西起别名取决于数据类型。对象、数组和函数将通过引用处理,并且可以使用别名。其他类型本质上是原子的,变量存储的是值而不是值的引用。

    Already answered here

    【讨论】:

      【解决方案2】:

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

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

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

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

      当您操作一个对象时,您实际上是在处理对该对象的引用,而不是实际的对象本身。因此,这些值被称为通过引用访问

      现在我们知道objnewObj 引用的是对象而不是实际对象,如果您操作该值,则您正在更改此内存位置的对象。因此,如果我使用obj.x = 'foo',这也会反映在newObj 中。

      【讨论】:

        猜你喜欢
        • 2015-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 2015-11-15
        • 2023-03-28
        • 1970-01-01
        相关资源
        最近更新 更多