淺談克隆 JavaScript
1、淺克隆
淺克隆無法copy陣列和物件
var obj = { name : "abs", age : '18', sex : 'male' } var obj1 = {} function clone(Origin,target) { target = target || {};//防止使用者不輸入target for(var k in Origin){ target[k] = Origin[k]; } } clone(obj,obj1);
2、深克隆
先判斷它是什麼,原始值,陣列還是物件,分別處理
- 遍歷物件
- 是原始值直接
copy
- 不是原始值判斷是陣列還是物件
- 是陣列建空陣列
- 是物件建空物件
- 建立了之後再遍歷一遍原始物件或陣列裡是啥
- 遞迴
var obj = { name : 'lin', age : '18', sex : 'male', card : [1,2,3,4], wife : { name : 'bcsds', son : { name : 'aaa' }, age : '23' } } var obj1 = {} //原始值和物件陣列typeof返回值有區別 function deepClone(origin,target) { target = target || {}; for(var k in origin) { if(origin.hasOwnProperty(k)){ if(typeof(origin[k]) == 'object') { if(Object.prototype.toString.call(origin[k]) == '[object Array]') { target[k] = []; }else { target[k] = {}; } deepClone(origin[k],target[k]); }else { target[k] = origin[k]; } } } } deepClone(obj,obj1);
您可能感興趣的文章:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015111/viewspace-2869930/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談JavaScriptJavaScript
- 淺淺淺談JavaScript作用域JavaScript
- 淺談JavaScript中的thisJavaScript
- 淺談JavaScript作用域JavaScript
- 淺談JavaScript錯誤JavaScript
- js中深克隆與淺克隆JS
- Salesforce Javascript(一) Promise 淺談SalesforceJavaScriptPromise
- 淺談JavaScript中的介面JavaScript
- java深克隆(深拷貝)和淺克隆(淺拷貝)Java
- javascript深度克隆JavaScript
- vue陣列的深克隆和淺克隆Vue陣列
- JAVA 基礎 – clone淺克隆與深克隆Java
- JAVA 基礎 - clone淺克隆與深克隆Java
- 淺談JavaScript正規表示式JavaScript
- 淺談Array --JavaScript內建物件JavaScript物件
- 淺談JavaScript原型及原型鏈JavaScript原型
- 淺談JavaScript中的繼承JavaScript繼承
- 淺談JavaScript的執行效率JavaScript
- 淺談javascript函式節流JavaScript函式
- 淺談JavaScript的語言特性JavaScript
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- 深入理解Java的淺克隆與深克隆Java
- javascript 深度克隆物件JavaScript物件
- 淺談JavaScript的型別轉換JavaScript型別
- 淺談JavaScript程式碼效能優化JavaScript優化
- 淺談Javascript中的作用域鏈JavaScript
- 淺談javascript的函式節流JavaScript函式
- 淺談JavaScript的編碼規範JavaScript
- 原生js實現物件的深克隆以及淺克隆JS物件
- js之物件深淺克隆JS物件
- Javascript 繼承和克隆JavaScript繼承
- JavaScript cloneNode() 克隆節點JavaScript
- JavaScript深層克隆物件JavaScript物件
- 淺談JavaScript的防抖與節流JavaScript
- 【JavaScript】淺談前端模組化與元件化JavaScript前端元件化
- 淺談JavaScript程式碼效能優化2JavaScript優化
- 閉包 | 淺談JavaScript閉包問題JavaScript
- 淺談JavaScript、ES5、ES6JavaScript