JS使用JSON.parse(),JSON.stringify()實現(xiàn)對對象的深拷貝功能分析
本文實例講述了JS使用JSON.parse(),JSON.stringify()實現(xiàn)對對象的深拷貝功能。分享給大家供大家參考,具體如下:
根據(jù)不包含引用對象的普通數(shù)組深拷貝得到啟發(fā),不拷貝引用對象,拷貝一個字符串會新辟一個新的存儲地址,這樣就切斷了引用對象的指針聯(lián)系。
測試例子:
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改變其中屬性的值時,對原來的對象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
好了,到這里就實現(xiàn)了,使用JSON.parse(),JSON.stringify()對對象的深拷貝~~
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關(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é)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
javascript 利用arguments實現(xiàn)可變長參數(shù)
在C#中,有可變長參數(shù)params[],但是在js中,如何實現(xiàn)這種可變參數(shù)呢?本片文章主要介紹利用arguments,實現(xiàn)可變長參數(shù)。有需要的請參考下2016-11-11
javascript學(xué)習(xí)筆記之函數(shù)定義
本文主要給大家介紹了javascript的一些函數(shù)定義方面的基礎(chǔ)知識,包括函數(shù)聲明式、函數(shù)表達式、Function 構(gòu)造函數(shù)等,十分的簡單實用,有需要的小伙伴可以參考下。2015-06-06
JavaScript實現(xiàn)文本轉(zhuǎn)語音功能的完整步驟
這篇文章主要介紹了如何使用JavaScript和WebSpeechAPI快速實現(xiàn)一個簡單的文本轉(zhuǎn)語音Web應(yīng)用,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-02-02
JavaScript實現(xiàn)動態(tài)表格的方法詳解
這篇文章主要為大家介紹了JavaScript實現(xiàn)動態(tài)表格的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
javascript基于DOM實現(xiàn)省市級聯(lián)下拉框的方法
這篇文章主要介紹了javascript基于DOM實現(xiàn)省市級聯(lián)下拉框的方法,可實現(xiàn)選擇省份后出現(xiàn)對應(yīng)城市下拉框選項的功能,非常具有實用價值,需要的朋友可以參考下2015-05-05
JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端
這篇文章主要為大家詳細介紹了JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01

