項(xiàng)目中出現(xiàn)一個(gè)報(bào)錯(cuò)Uncaught TypeError: Converting circular structure to JSON, ,根據(jù)上述報(bào)錯(cuò)可以知道代碼是運(yùn)行到JSON.stringify時(shí),拋出了這個(gè)錯(cuò)誤,代碼中使用JSON.parse跟JSON.stringify來實(shí)現(xiàn)便捷深復(fù)制,網(wǎng)上查詢了一圈,原來是要深復(fù)制的對(duì)象被循環(huán)引用,什么意思呢?如下所示

我們聲明兩個(gè)對(duì)象,然后把第一個(gè)對(duì)象賦值給第二個(gè)對(duì)象里面的一個(gè)屬性,把第二個(gè)對(duì)象賦值給第一個(gè)對(duì)象里的某個(gè)屬性,此時(shí)就是循環(huán)引用,這個(gè)時(shí)候再去使用JSON.string跟JSON.parse來深復(fù)制就會(huì)報(bào)上述的錯(cuò)誤,解決辦法是再聲明一個(gè)對(duì)象,把你要深復(fù)制的對(duì)象里的屬性賦值給新的對(duì)象,然后再進(jìn)行深復(fù)制

此時(shí)再運(yùn)行就發(fā)現(xiàn)不會(huì)報(bào)錯(cuò)了, 。

|