javascript 深拷贝

function deepClone(obj) {
	var toString = Object.prototype.toString
	var o = toString.call(obj) == '[object Array]' ? [] : {}
	for (var prop in obj) {
		if(obj.hasOwnProperty(prop)){
            if (typeof obj[prop] == 'object' && obj[prop] != undefined) {
			    o[prop] = deepClone(obj[prop])
		    } else if (typeof obj[prop] == 'object' && obj[prop] == undefined) {
			    o[prop] = null
		    } else {
			    o[prop] = obj[prop]
		    }
        }
	}
	return o
}

// 符合json格式的数据对象可用
function deepClone(obj) {
     return JSON.parse(JSON.stringify(obj))
}

// Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象
Object.assign(target, ...sources)

猜你喜欢

转载自blog.csdn.net/qq_31687021/article/details/89635418