2017-07-03 101 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

相關問題