深圳市小水滴网络科技有限公司(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 15 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- 请实现一个对象深拷贝函数,要求将以下对象拷贝为一个新对象 { name:"ice", age:18, label:["Humor"], Address:{ country:"China", Province:"GuangZhou", city:"ShenZhen" } }
可以使用Object.create可以达到深拷贝的效果
var obj = finalObj || {};
for (var i in initalObj) {
var prop = initalObj[i]; // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
if(prop === obj) {
continue;
}
if (typeof prop === 'object') {
obj[i] = (prop.constructor === Array) ? [] : Object.create(prop);
} else {
obj[i] = prop;
}
}
return obj;
}