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ì)原來(lái)的對(duì)象test沒(méi)有造成影響。
JSON.parse(),JSON.stringify()兼容性問(wèn)題
可以通過(guò)為IE7以及IE7以下版本的IE瀏覽器引入json2.js,使用json2.js來(lái)解決JSON的兼容性問(wèn)題
<!--[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(mén)教程》、《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、JQuery屏蔽網(wǎng)頁(yè)鼠標(biāo)右鍵菜單及禁止選擇復(fù)制
這篇文章主要介紹了深入探討JavaScript、JQuery屏蔽網(wǎng)頁(yè)鼠標(biāo)右鍵菜單及禁止選擇復(fù)制,需要的朋友可以參考下2014-06-06JS簡(jiǎn)單判斷滾動(dòng)條的滾動(dòng)方向?qū)崿F(xiàn)方法
這篇文章主要介紹了JS簡(jiǎn)單判斷滾動(dòng)條的滾動(dòng)方向?qū)崿F(xiàn)方法,涉及javascript針對(duì)scrollTop事件的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04一段多瀏覽器的"復(fù)制到剪貼板"javascript代碼
一段多瀏覽器的"復(fù)制到剪貼板"javascript代碼...2007-03-03關(guān)于使用 jBox 對(duì)話框的提交不能彈出問(wèn)題解決方法
在 ASP.NET Form 中使用 jBox 的時(shí)候,在按鈕注冊(cè)的客戶端點(diǎn)擊事件中,會(huì)發(fā)現(xiàn)不能彈出對(duì)話框問(wèn)題2012-11-11多種方式實(shí)現(xiàn)JS調(diào)用后臺(tái)方法進(jìn)行數(shù)據(jù)交互
幾種典型常用的方法如利用控件的AutopostBack屬性、Button提交表單等等,下面為大家分享下JS調(diào)用后臺(tái)方法進(jìn)行數(shù)據(jù)交互示例2013-08-08vant uploader實(shí)現(xiàn)上傳圖片拖拽功能(設(shè)為封面)
這篇文章主要介紹了vant uploader實(shí)現(xiàn)上傳圖片拖拽功能(設(shè)為封面),這個(gè)功能在日常生活中經(jīng)常會(huì)用到,操作非常方便,今天通過(guò)實(shí)例代碼介紹實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2021-10-10javascript dom 操作詳解 js加強(qiáng)
javascript dom 操作詳解 js加強(qiáng)操作實(shí)現(xiàn)代碼。2009-07-07JavaScript快速實(shí)現(xiàn)一個(gè)顏色選擇器
在做前端界面開(kāi)發(fā)的時(shí)候,遇到需要改變顏色的需求,就需要使用顏色選擇器。本文就來(lái)用JavaScript編寫(xiě)一個(gè)簡(jiǎn)單的顏色選擇器,感興趣的可以了解一下2023-02-02