JS使用JSON.parse(),JSON.stringify()實(shí)現(xiàn)對對象的深拷貝功能分析
本文實(shí)例講述了JS使用JSON.parse(),JSON.stringify()實(shí)現(xiàn)對對象的深拷貝功能。分享給大家供大家參考,具體如下:
根據(jù)不包含引用對象的普通數(shù)組深拷貝得到啟發(fā),不拷貝引用對象,拷貝一個(gè)字符串會新辟一個(gè)新的存儲地址,這樣就切斷了引用對象的指針聯(lián)系。
測試?yán)樱?/p>
var test={
a:"ss",
b:"dd",
c:[
{dd:"css",ee:"cdd"},
{mm:"ff",nn:"ee"}
]
};
var test1 = JSON.parse(JSON.stringify(test));//拷貝數(shù)組,注意這行的拷貝方法
console.log(test);
console.log(test1);
test1.c[0].dd="change"; //改變test1的c屬性對象的d屬性
console.log(test); //不影響test
console.log(test1);
測試結(jié)果:

根據(jù)測試結(jié)果,我們可以看到,test1已經(jīng)從test復(fù)制一份,并且test1改變其中屬性的值時(shí),對原來的對象test沒有造成影響。
JSON.parse(),JSON.stringify()兼容性問題
可以通過為IE7以及IE7以下版本的IE瀏覽器引入json2.js,使用json2.js來解決JSON的兼容性問題
<!--[if lt IE 7]> <script src="具體放路徑/json2.js"></script> <![endif]-->
json2.js的github地址為:https://github.com/douglascrockford/JSON-js
好了,到這里就實(shí)現(xiàn)了,使用JSON.parse(),JSON.stringify()對對象的深拷貝~~
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
深入探討JavaScript、JQuery屏蔽網(wǎng)頁鼠標(biāo)右鍵菜單及禁止選擇復(fù)制
這篇文章主要介紹了深入探討JavaScript、JQuery屏蔽網(wǎng)頁鼠標(biāo)右鍵菜單及禁止選擇復(fù)制,需要的朋友可以參考下2014-06-06
一段多瀏覽器的"復(fù)制到剪貼板"javascript代碼
一段多瀏覽器的"復(fù)制到剪貼板"javascript代碼...2007-03-03
關(guān)于使用 jBox 對話框的提交不能彈出問題解決方法
在 ASP.NET Form 中使用 jBox 的時(shí)候,在按鈕注冊的客戶端點(diǎn)擊事件中,會發(fā)現(xiàn)不能彈出對話框問題2012-11-11
多種方式實(shí)現(xiàn)JS調(diào)用后臺方法進(jìn)行數(shù)據(jù)交互
幾種典型常用的方法如利用控件的AutopostBack屬性、Button提交表單等等,下面為大家分享下JS調(diào)用后臺方法進(jìn)行數(shù)據(jù)交互示例2013-08-08
vant uploader實(shí)現(xiàn)上傳圖片拖拽功能(設(shè)為封面)
這篇文章主要介紹了vant uploader實(shí)現(xiàn)上傳圖片拖拽功能(設(shè)為封面),這個(gè)功能在日常生活中經(jīng)常會用到,操作非常方便,今天通過實(shí)例代碼介紹實(shí)現(xiàn)過程,需要的朋友可以參考下2021-10-10
javascript dom 操作詳解 js加強(qiáng)
javascript dom 操作詳解 js加強(qiáng)操作實(shí)現(xiàn)代碼。2009-07-07
JavaScript快速實(shí)現(xiàn)一個(gè)顏色選擇器
在做前端界面開發(fā)的時(shí)候,遇到需要改變顏色的需求,就需要使用顏色選擇器。本文就來用JavaScript編寫一個(gè)簡單的顏色選擇器,感興趣的可以了解一下2023-02-02

