How to clone js object?

Possible Duplicate:
What is the most efficient way to clone a JavaScript object?

How to clone js object with out reference like these:

{ ID: _docEl,
  Index: next,
  DocName: _el
}

Any ideas?


You'll have to iterate over the object and make copies of all its properties.

And then if any of its properties are also objects, assuming you want to clone those too, you'll have to recurse into them.

There's various methods for doing this here: What is the most efficient way to clone a JavaScript object?


基于thomasrutter的建议(未经测试的代码),我将如何做到这一点:

function cloneObj(obj) {
    var clone = {};

    for (var i in obj) {
        if (obj[i] && typeof obj[i] == 'object') {
            clone[i] = cloneObj(obj[i]);
        } else {
            clone[i] = obj[i];
        }
    }

    return clone;
}

You can use jQuery.extend:

// Shallow copy
var newObject = jQuery.extend({}, oldObject);

// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);

The following post is so helpful:

What is the most efficient way to deep clone an object in JavaScript?

链接地址: http://www.djcxy.com/p/6948.html

上一篇: 在javascript中深度复制嵌套对象的数组

下一篇: 如何克隆js对象?