在 JavaScript 中從巢狀物件擷取父物件
在 JavaScript 中,存取巢狀物件是一個常見的操作。然而,從嵌套物件中檢索父物件可能具有挑戰性。
考慮以下場景:
obj: { subObj: { foo: 'hello world' } }; var s = obj.subObj;
現在,您想要從變數取得對父物件 obj 的參考s。有沒有辦法實現這一點?
答案
不幸的是,JavaScript 中的巢狀物件無法直接存取其父物件。因此,不可能直接從嵌套物件中取得父物件。
為了說明這一點,讓我們考慮以下程式碼:
var main = { name : "main object", child : { name : "child object" } };
從主物件存取子物件的名稱是簡單明了(即 main.child.name)。但是,嘗試從子物件存取父物件的名稱(即 main.child.parent.name)將產生錯誤。
替代解決方案
雖然直接從子物件引用是不可行的,還有一種替代方法,利用函數。
var main = { name : "main object", child : { name : "child object" }, init : function() { this.child.parent = this; delete this.init; return this; } }.init();
在這段程式碼中,init函數直接向子物件增加一個父屬性,指向父物件。初始化完成後,您可以透過呼叫 main.child.parent.name 成功從子物件存取父物件的名稱。
這個方法有點不正統,但提供了解決從子物件檢索父物件的問題的方法JavaScript 中的巢狀物件。
以上是如何從 JavaScript 中的嵌套物件取得父物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!