爲什麼我們需要javascript中的自引用對象。 例如爲什麼我們需要javascript中的自引用對象
let a = {};
a.self = a;
現在的屬性自指的是本身,成爲圓形的物體。
在nodejs中,當我們使用像hapi這樣的路由庫。 我們收到的請求對象是圓形的
爲什麼我們需要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
)遍歷樹。
我也看到人們將屬性設置爲自己而不是'null'以避免類型錯誤 – MinusFour
我們沒有。
問這個代碼作者他們爲什麼這麼做。 - zerkms
問這個代碼作者他們爲什麼這麼做。我們並不是因爲一些普遍原因「需要它」。 – zerkms
「像hapi這樣的路由庫,我們收到的請求對象是循環的」---請問'hapi'開發者爲什麼要這樣做。 – zerkms