如何克隆js对象?

可能重复:
什么是克隆JavaScript对象最有效的方法?

如何用这样的引用克隆js对象:

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

有任何想法吗?


您必须遍历该对象并复制其所有属性。

然后,如果它的任何属性也是对象,假设你也想克隆它们,那么就必须缓存它们。

这里有多种方法可以做到这一点:克隆JavaScript对象的最有效方法是什么?


基于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;
}

你可以使用jQuery.extend:

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

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

以下文章非常有用:

在JavaScript中深入克隆对象的最有效方法是什么?

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

上一篇: How to clone js object?

下一篇: Cloning objects TypeScript