【发布时间】:2015-09-12 17:31:59
【问题描述】:
我有一个我正在努力解决的问题。任何帮助将不胜感激。
我有一个对象,我将当前对象状态分配给当前对象的一个属性。
下面的例子:
var product = {
ropeType: 'blah',
ropePrice: 'blah',
ropeSections: {
name: 'blaah',
price: 'blaah'
},
memory: false
}
product.memory = product;
现在,当我在控制台中查看产品对象时,我得到了 Product.memory.Product.memory.Product.... 的无限递归。
截图如下:
我知道它与对象引用自身有关,但我似乎无法理解这个概念。谁能解释一下?
我尝试这样做的原因是为了在本地存储中保存对象的当前状态。
我希望我说得通。
【问题讨论】:
-
你不明白的到底是什么?这是一个循环数据结构。考虑一个圆形路径。如果沿着这条路走,你最终会到达你开始的地方。
-
使用不同的变量来存储对象。如果你将一个对象附加到它自身的一个属性上,它就会无限地自我引用。
-
哦,好吧,所以对象总是自引用的?
-
嗯,不。但是对象是通过引用来表示的。
product.memory = product;将对product的引用分配给自身。
标签: javascript oop object recursion