javascript中的循環引用對象處理
先說明一下什麽是循環引用對象:
var a={"name":"zzz"}; var b={"name":"vvv"}; a.child=b; b.parent=a;
這裏的a和b都是一個循環引用對象。
循環引用對象本來沒有什麽問題,序列化的時候才會發生問題,比如調用JSON.stringify()對該類對象進行序列化,就會報錯: Converting circular structure to JSON. 而序列化需求很常見,比如發起一個ajax請求提交一個對象就需要對對象進行序列化。
針對這種問題的一種解決方案是去除這種循環引用,Douglas Crockford寫了一個JSON的擴展包,裏面的cycle.js剛好就是用來解決此類問題。
例如:
var c = JSON.decycle(a)
這樣就去除了a對象的循環引用,如果想恢復原本的循環引用對象a,可以調用retrocycle方法
var a = JSON.retrocycle(c)
javascript中的循環引用對象處理
相關推薦
javascript中的循環引用對象處理
block pan script 需要 恢復 clas 對象處理 ren nbsp 先說明一下什麽是循環引用對象: var a={"name":"zzz"}; var b={"name":"vvv"}; a.child=b; b.parent=a; 這裏的a和b
JavaScript中的內置對象-8-date對象-4
開始 當前的日期時間 月份 span style 返回值 font 特定 mil 學習目標 1.掌握創建日期對象的方法 2.掌握date對象中獲取日期時間的方法 3.掌握date對象中設置日期時間的方法 如何創建一個日期對象 語法:new Date(); 功能:創建一個日期
JavaScript中的內置對象-8-Array-1
sort item sta ear 使用 傳遞 讀取 第一個 構造 JavaScript中的內置對象 1.Array 2.String 3.Math 4.Date JavaScript中的數組 學習目標 1.掌握任何創建數組 2.掌握數值元素的讀和寫 3.掌握數組的leng
JavaScript中的內置對象-8-Math-3
說明 abs font dom min() align tro 公式 最小值 學習目標 1.掌握Math對象的方法: min() max() ceil() floor() round() abs() Math.min() 語法: Math.min(num1,num2,...
JavaScript 中的不可變對象(Immutable Objects)
col es5 還需要 scrip 情況 解決 創建 logs 方案 默認情況下,JavaScript 中的對象是可變的。我們可以更改原始值(字符串,數字等)和對象。我們來看看這個對象: let obj = { num: 10, obj: {
前端基礎---JavaScript中的BOM DOM對象
3.1 直接 ons this 新的 表示 們的 添加 ecc 1.BOM對象 window對象 所有瀏覽器都支持 window 對象。概念上講.一個html文檔對應一個window對象.功能上講: 控制瀏覽器窗口的.使用上講: window對象不需要創建對象,直接使用即可
JavaScript中常用的BOM對象(屬性、方法)
oba 新的 afa 方便 href asc 保存 目錄 style window對象 定義: 一個瀏覽器窗口實例 與窗口有關的信息(應用程序編程接口) ECMAScript規定的Global對象 方法 open(url),返回標識符 引用 即將打開窗口的。(調用該
JavaScript中的內置對象(數組、Boolean、Number、字符串)和自定義對象
indexof() join size 回調 cal string 長度 排列 concat JS中常用的內置對象有:數組、Boolean類、Number類、字符串。下面分別介紹各自的常用方法 JS中的數組 1.數組的聲明 ①字面量聲明 直接使用[]聲明數組:
for循環json對象取值
log info image hid nbsp json對象 src console 圖片 for(var time in ceshiData){console.log(ceshiData[time])} for(var time in ceshiData){cons
JavaScript中new了一個對象,發生了什麽?
das script nis 強調 asc rip 操作 category turn JavaScript一直強調沒有類的概念,但是JavaScript中我們也經常需要new一個對象。 new是一個運算符,用來調用函數(js中函數可以作為普通函數被調用做方法,也可以通過n
EF中Json序列化對象時檢測到循環引用的解決辦法
one fin 數據 對象 logs pub result 去掉 urn MVC4 EF中將數據表外鍵引用的是自身,轉換成Json時,總是提示錯誤:“序列化類型為。。。。的對象時檢測到循環引用。”; 解決辦法: 把要序列化的對象轉為匿名對象去掉導航屬性,如下 :本來是var
序列化類型為XX的對象時檢測到循環引用
return time cti reflect 提示 處的 var 循環引用 ons 現象描述: MVC4中將dataTable轉換成Json時,總是提示錯誤:“序列化類型為“System.Reflection.RuntimeModule&rdqu
EF提示“序列化類型為XXX的對象時檢測到循環引用”
col urn each png ntc nbsp mode 一個 inf 能看到這個標題 ,我就用解釋原因,網上很多,我只給大家一個解決方案會: public <#=code.Escape(entity)#> ToPOCO()
vue中循環數組和對象
javascrip key 循環 asc ava color v-for val true 1.數組 num: [ { name: "這是二", id: 1 }, {
[ Javascript ] 內存泄露以及循環引用解析
設置 name 簡單 卸載 uid dsm 版本號 導致 mod 內存泄露 在javascript中,我們非常少去關註內存的管理。我們創建變量,使用變量,瀏覽器關註這些底層的細節都顯得非常正常。 可是當應用程序變得越來越復雜而且ajax化之後,或者用戶在一個頁面停留過久
python_如何在循環引用中管理內存?
ref don node light port bin 實例對象 highlight object 案例: python中通過引用計數來回收垃圾對象,在某些環形數據結構(樹,圖……),存在對象間的循環引用,比如樹的父節點引用子節點,子節點同時引用父節點,此時通過del掉
Block 循環引用(中)
cycle 代碼 eth 之前 ras ima something 常見錯誤 OS 不會造成循環引用的block 大部分GCD方法 1 dispatch_async(dispatch_get_main_queue(), ^{ 2 [self doSomething
Javascript知識匯總------面向對象中繼承(未完成)
clas 繼承性 封裝 class 原型繼承 行為 特征 body 多態性 面向對象的特征就是封裝性,繼承性和多態性 | 封裝:就是將復雜包裹,隱藏起來,讓簡單的東西預留在外面 | 繼承:拿來主義,自己沒用,把別人的拿過來,讓其成為自己的東西
javascript中的迴圈引用物件處理
先說明一下什麼是迴圈引用物件: var a={"name":"zzz"}; var b={"name":"vvv"}; a.child=b; b.parent=a; 複製程式碼 這裡的a和b都是一個迴圈引用物件。迴圈引用物件本來沒有什麼問題,序列化的時候才會發生問題,比如呼叫JSON.stringif
React createRef:通過引用對象,在父組件中操作子組件
commit 有一個 gets 對象 rop microsoft 一個 fault reac 一 代碼 在MyComponent中,操作其子組件(文本框)。 import React from ‘react‘; class MyCompone