淺談JavaScript中面向?qū)ο蟮牡纳羁截惡蜏\拷貝
理解深拷貝和淺拷貝之前需要弄懂一些基礎概念,內(nèi)存中存儲的變量類型分為值類型和引用類型。
1、值類型賦值的存儲特點, 將變量內(nèi)的數(shù)據(jù)全部拷貝一份, 存儲給新的變量。
例如:var num = 123 ;var num1=num;
表示變量中存儲的數(shù)字是 123。然后將數(shù)據(jù)拷貝一份,就是將 123 拷貝一份. 那么內(nèi)存中有 2 個 數(shù)組;將拷貝數(shù)據(jù)賦值給 num2,其特點是在內(nèi)存中有兩個數(shù)據(jù)副本.這可以理解為淺拷貝。
2、引用類型的賦值。
var o={name:'張三‘};
var obj=o;
賦值就是將 變量 o 中存儲的數(shù)據(jù)拷貝一份, 然后將該數(shù)據(jù)賦值給 obj。內(nèi)存中有 1 分數(shù)據(jù),利用 obj 修改的 name 屬性會影響到 o 中的 name。
如果拷貝的時候, 將數(shù)據(jù)的所有引用結(jié)構(gòu)都拷貝一份, 那么數(shù)據(jù)在內(nèi)存中獨立就是深拷貝;
如果拷貝的時候, 只針對當前對象的屬性進行拷貝, 而屬性是引用類型這個不考慮, 那么就是淺拷貝;
拷貝: 復制一份. 指將對象數(shù)據(jù)復制;
在討論深拷與淺拷的時候一定要保證對象的屬性也是引用類型。
以上這篇淺談JavaScript中面向?qū)ο蟮牡纳羁截惡蜏\拷貝就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Javascript 淺拷貝、深拷貝的實現(xiàn)代碼
- JavaScript數(shù)組深拷貝和淺拷貝的兩種方法
- js對象淺拷貝和深拷貝詳解
- javascript對淺拷貝和深拷貝的詳解
- javascript深拷貝和淺拷貝詳解
- 淺析javaScript中的淺拷貝和深拷貝
- JavaScript基礎心法 深淺拷貝(淺拷貝和深拷貝)
- javascript深拷貝、淺拷貝和循環(huán)引用深入理解
- JavaScript深拷貝和淺拷貝概念與用法實例分析
- JavaScript實現(xiàn)淺拷貝與深拷貝的方法分析
- JS淺拷貝和深拷貝原理與實現(xiàn)方法分析
- JS中實現(xiàn)淺拷貝和深拷貝的代碼詳解
- javascript二維數(shù)組和對象的深拷貝與淺拷貝實例分析
- javascript 關(guān)于賦值、淺拷貝、深拷貝的個人理解
- JS賦值、淺拷貝和深拷貝(數(shù)組和對象的深淺拷貝)實例詳解
- 詳解JS深拷貝與淺拷貝
- JS對象復制(深拷貝和淺拷貝)
- js深拷貝與淺拷貝一文徹底搞懂
相關(guān)文章
JavaScript控制listbox列表框的項目上下移動的方法
這篇文章主要介紹了JavaScript控制listbox列表框的項目上下移動的方法,實例分析了javascript操作listbox列表框的技巧,非常具有實用價值,需要的朋友可以參考下2015-03-03JavaScript類型轉(zhuǎn)換方法及需要注意的問題小結(jié)(挺全面)
JavaScript類型轉(zhuǎn)換方法及需要注意的問題,在js中經(jīng)常需要對數(shù)據(jù)類型的轉(zhuǎn)換操作,需要的朋友可以參考下。2010-11-11