摘要:問題來源在中,引用類型的變量引用的只是內存的地址信息,所以在用其給其他變量賦值時,另一個變量得到的是該內存地址,不是內存中的內容,所以在另一個變量改變某個值的時候會反映在原始變量中。
問題來源
在js中,引用類型的變量引用的只是內存的地址信息,所以在用其給其他變量賦值時,另一個變量得到的是該內存地址,不是內存中的內容,所以在另一個變量改變某個值的時候會反映在原始變量中。
例如:
var test={ name:"jack", age:"23", } var test1=test test1.name="rose" console.log(test.name) //rose console.log(test1.name) //rose
解決方法:
如果是數組:
最簡單的方法就是:
var aArr = [0,1,2,3];
var m = aArr.slice(0);
通用的:對數組、對象都適用的(其實就是循環遍歷重新建一個):
function clone(obj) { var o; if (typeof obj == "object") { if (obj === null) { o = null; } else { if (obj instanceof Array) { o = []; for (var i = 0, len = obj.length; i < len; i++) { o.push(clone(obj[i])); } } else { o = {}; for (var j in obj) { o[j] = clone(obj[j]); } } } } else { o = obj; } return o; }
節點克隆:
var p = document.getElementsByTagName("p")[0]; var cP = p.cloneNode();//克隆p節點 var cP = p.cloneNode(true);//克隆p節點,深度克隆,克隆節點以及節點下面的子內容。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83599.html
摘要:它將返回目標對象。有些文章說是深拷貝,其實這是不正確的。深拷貝相比于淺拷貝速度較慢并且花銷較大。拷貝前后兩個對象互不影響。使用深拷貝的場景完全改變變量之后對沒有任何影響,這就是深拷貝的魔力。 一、賦值(Copy) 賦值是將某一數值或對象賦給某個變量的過程,分為: 1、基本數據類型:賦值,賦值之后兩個變量互不影響 2、引用數據類型:賦址,兩個變量具有相同的引用,指向同一個對象,相互之間有...
摘要:展開語法木易楊通過代碼可以看出實際效果和是一樣的。木易楊可以看出,改變之后的值并沒有發生變化,但改變之后,相應的的值也發生變化。深拷貝使用場景木易楊完全改變變量之后對沒有任何影響,這就是深拷貝的魔力。木易楊情況下,轉換結果不正確。 一、賦值(Copy) 賦值是將某一數值或對象賦給某個變量的過程,分為下面 2 部分 基本數據類型:賦值,賦值之后兩個變量互不影響 引用數據類型:賦址,兩個...
摘要:深拷貝和淺拷貝的區別背景最近在用框架寫頁面,賦值給中的對象時會出現一個問題,賦值和被賦值對象之中任何一個有變化,另一個也會隨之變化。 深拷貝和淺拷貝的區別 背景:最近在用vue框架寫頁面,賦值給Vue.$data中的對象時會出現一個問題,賦值和被賦值對象之中任何一個有變化,另一個也會隨之變化。例如: var b = { foo: 123 }; var vm = new Vue(...
摘要:接下來我們進入正片數據類型六種基本數據類型布爾值,和一個表明值的特殊關鍵字。一種數據類型,它的實例是唯一且不可改變的。在中是沒有方法是可以改變布爾值和數字的。參考資料深拷貝淺拷貝 前言 筆者最近整理了一些前端技術文章,如果有興趣可以參考這里:muwoo blogs。接下來我們進入正片: js 數據類型 六種 基本數據類型: Boolean. 布爾值,true 和 false. nu...
摘要:接下來我們進入正片數據類型六種基本數據類型布爾值,和一個表明值的特殊關鍵字。一種數據類型,它的實例是唯一且不可改變的。在中是沒有方法是可以改變布爾值和數字的。參考資料深拷貝淺拷貝 前言 筆者最近整理了一些前端技術文章,如果有興趣可以參考這里:muwoo blogs。接下來我們進入正片: js 數據類型 六種 基本數據類型: Boolean. 布爾值,true 和 false. nu...
閱讀 2062·2023-04-25 21:11
閱讀 2963·2021-09-30 09:47
閱讀 2272·2021-09-24 09:48
閱讀 4428·2021-08-23 09:43
閱讀 895·2019-08-30 15:54
閱讀 559·2019-08-28 18:01
閱讀 1397·2019-08-27 10:55
閱讀 588·2019-08-27 10:55