2017-07-03 102 views
2

为什么我们需要javascript中的自引用对象。 例如为什么我们需要javascript中的自引用对象

let a = {}; 
a.self = a; 

现在的属性自指的是本身,成为圆形的物体。

在nodejs中,当我们使用像hapi这样的路由库。 我们收到的请求对象是圆形的

+1

问这个代码作者他们为什么这么做。我们并不是因为一些普遍原因“需要它”。 – zerkms

+0

“像hapi这样的路由库,我们收到的请求对象是循环的”---请问'hapi'开发者为什么要这样做。 – zerkms

回答

3

编辑:我理解这个问题要问“为什么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

3

我们没有。

问这个代码作者他们为什么这么做。 - zerkms