JS使用JSON.parse(),JSON.stringify()實(shí)現(xiàn)對(duì)對(duì)象的深拷貝功能分析
本文實(shí)例講述了JS使用JSON.parse(),JSON.stringify()實(shí)現(xiàn)對(duì)對(duì)象的深拷貝功能。分享給大家供大家參考,具體如下:
根據(jù)不包含引用對(duì)象的普通數(shù)組深拷貝得到啟發(fā),不拷貝引用對(duì)象,拷貝一個(gè)字符串會(huì)新辟一個(gè)新的存儲(chǔ)地址,這樣就切斷了引用對(duì)象的指針聯(lián)系。
測(cè)試?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屬性對(duì)象的d屬性
console.log(test); //不影響test
console.log(test1);
測(cè)試結(jié)果:

根據(jù)測(cè)試結(jié)果,我們可以看到,test1已經(jīng)從test復(fù)制一份,并且test1改變其中屬性的值時(shí),對(duì)原來的對(duì)象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()對(duì)對(duì)象的深拷貝~~
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
javascript 利用arguments實(shí)現(xiàn)可變長參數(shù)
在C#中,有可變長參數(shù)params[],但是在js中,如何實(shí)現(xiàn)這種可變參數(shù)呢?本片文章主要介紹利用arguments,實(shí)現(xiàn)可變長參數(shù)。有需要的請(qǐng)參考下2016-11-11
javascript學(xué)習(xí)筆記之函數(shù)定義
本文主要給大家介紹了javascript的一些函數(shù)定義方面的基礎(chǔ)知識(shí),包括函數(shù)聲明式、函數(shù)表達(dá)式、Function 構(gòu)造函數(shù)等,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06
JavaScript實(shí)現(xiàn)文本轉(zhuǎn)語音功能的完整步驟
這篇文章主要介紹了如何使用JavaScript和WebSpeechAPI快速實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文本轉(zhuǎn)語音Web應(yīng)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
JavaScript實(shí)現(xiàn)動(dòng)態(tài)表格的方法詳解
這篇文章主要為大家介紹了JavaScript實(shí)現(xiàn)動(dòng)態(tài)表格的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
javascript基于DOM實(shí)現(xiàn)省市級(jí)聯(lián)下拉框的方法
這篇文章主要介紹了javascript基于DOM實(shí)現(xiàn)省市級(jí)聯(lián)下拉框的方法,可實(shí)現(xiàn)選擇省份后出現(xiàn)對(duì)應(yīng)城市下拉框選項(xiàng)的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01

