为什么我们需要javascript中的自引用对象
问题描述:
为什么我们需要javascript中的自引用对象。 例如为什么我们需要javascript中的自引用对象
let a = {};
a.self = a;
现在的属性自指的是本身,成为圆形的物体。
在nodejs中,当我们使用像hapi这样的路由库。 我们收到的请求对象是圆形的
答
编辑:我理解这个问题要问“为什么JavaScript允许循环引用”。
一般来说,我会说一个物体本身作为它的属性值(a.self = a
)并不是很有用。如果你有对象的引用来取其属性,那么你已经有了对该对象的引用。
但是,如果自我引用更深,那么它就很有意义。例如,树木,使导航上:
let tree = { children: [], parent: null };
tree.children.push({ children: [], parent: tree });
这里,tree.children[0].parent === tree
。你有一个圆形物体,但它有一个明确的目的:你可以向下(通过children
)和向上(通过parent
)遍历树。
+0
我也看到人们将属性设置为自己而不是'null'以避免类型错误 – MinusFour
答
我们没有。
问这个代码作者他们为什么这么做。 - zerkms
问这个代码作者他们为什么这么做。我们并不是因为一些普遍原因“需要它”。 – zerkms
“像hapi这样的路由库,我们收到的请求对象是循环的”---请问'hapi'开发者为什么要这样做。 – zerkms