在Web 開發領域,JSON.stringify 函數是將JavaScript 物件轉換為JSON 字串的強大工具。但是,當嘗試對本機 Error 物件進行字串化時,會出現異常行為。傳回一個空對象,而不是預期的錯誤訊息。
要深入研究這種現象,請考慮以下程式碼片段:
As如上所示,JSON.stringify 傳回一個空對象,表明本機Error 物件的屬性未字串化。此行為源自於 Error 物件中缺少可枚舉屬性。
為了驗證這一點,我們可以使用Object.getOwnPropertyNames 來擷取Error 物件中定義的屬性名稱:
但是,如果我們檢查屬性描述符,我們會發現所有可枚舉屬性都設定為false屬性:
儘管缺少可枚舉屬性,但存在一種使用JSON.stringify 字串化本機Error 物件的解決方法:
透過提供屬性名稱清單作為JSON.stringify 的第二個參數,我們明確指示它將它們包含在字串化過程中,甚至儘管預設情況下它們是不可枚舉的。
以上是為什麼 JSON.stringify 在字串化本機錯誤物件時回傳空物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!