天天看点

《JavaScript启示录》——1.9 如何存储和复制原始值

本节书摘来自异步社区《javascript启示录》一书中的第1章,第1.9节,作者:【美】cody lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

原始值在“面值(face value)”中的存储和操作,理解这一点相当重要。这可能听起来很简单,但是这意味着如果将字符串值“foo”存储在mystring变量中,那么从字面上讲,“foo”值同样存储于内存中。为什么了解这个知识很重要?因为一旦开始操作(即复制)值,我们就必须了解它,因为原始值是真实值复制。

在下面的示例中,我们在变量mystringcopy中存储了mystring值('foo')的一个副本,其值是真实值复制。即使我们改变原来的值,变量mystringcopy引用的复制值仍保持不变。

这里的重点是,原始值是作为不可细化的值进行存储和操作的。引用它们会转移其值。在上面的示例中,我们复制或者克隆了mystring值并存储到mystringcopy变量中。当更新mystring值时,mystringcopy值仍是旧mystring值的副本。请记住这点,并对这里的技术细节和复杂对象进行比较(将在下面讨论)。

继续阅读