如果想要把一個物件複製出另外一個內容相同的物件,就只能用迴圈的方式自行複製
在 StackOverflow [1] 上找到一段還不錯的參考程式碼(原作者是 A. Levy),內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
function clone(obj) { // Handle the 3 simple types, and null or undefined if ( null == obj || "object" != typeof obj) return obj; // Handle Array if ( obj instanceof Array) { var copy = []; for ( var i = 0, len = obj.length; i < len; i++) { copy[i] = clone(obj[i]); } return copy; } // Handle Object if ( obj instanceof Object) { var copy = {}; for ( var attr in obj) { //$.console("track attr: " + attr); if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; } } |
沒有留言:
張貼留言