js在處理複雜數據的時候,可能會涉及到引用類型的對象或者數組的copy問題,下麵是兩種複製對象或數組的方法: 一、利用jquery自帶的方法,調用簡單方便 ...
js在處理複雜數據的時候,可能會涉及到引用類型的對象或者數組的copy問題,下麵是兩種複製對象或數組的方法:
一、利用jquery自帶的方法,調用簡單方便
// 淺層複製(只複製object根級的各個值) var newObject = jQuery.extend({}, oldObject); // 深層複製(會複製整個(包括根節點和子節點)object的值) var newObject = jQuery.extend(true, {}, oldObject);
二、可以通過js迴圈的方式去一層一層複製,如下
// 淺層複製(只複製object根級的各個值)
var old_obj = {a:{b:50}}; function copyBoot(obj){ var newobj = {}; for ( var attr in obj) { newobj[attr] = obj[attr]; } return newobj; } var obj2 = copyBoot(obj); obj2.a.b = 20; alert(obj.a.b);
// 深層複製(會複製整個(包括根節點和子節點)object的值)
var obj = {a:{b:50}}; function copyAll(obj){ if(typeof obj != 'object'){ return obj; } var newobj = {}; for ( var attr in obj) { newobj[attr] = copyAll(obj[attr]); } return newobj; } var obj2 = copyAll(obj); obj2.a.b = 20; alert(obj.a.b);