您好,登錄后才能下訂單哦!
這篇文章主要講解了“JavaScript中如何遞歸的方式來進行復制”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript中如何遞歸的方式來進行復制”吧!
1.遞歸的方式來進行復制
//定義一個稍微復雜的對象
var obj = {
name: [{
name: 'lisi'
},{
name: 'zhang',
age: [{
name: 'liu'
}]
}],
age: '90'
}
function deepClone(obj) {
//定義一個變量來存儲結果
var result;
//判斷傳遞的類型
if(obj === null || typeof obj !== 'object') return obj;
//處理日期對象
if(obj instanceof Date){
result = new Date();
result.setTime(obj.getTime());
return result;
}
//處理數組
if(obj instanceof Array) {
result = [];
for(var i = 0; i < obj.length; i++){
result[i] = arguments.call(obj[i])
}
return result;
}
//處理對象
if(obj instanceof Object) {
result = {};
for(var key in obj) {
if(obj.hasOwnProperty(key) result[key] = arguments.callee(obj[key])
}
return result;
}
}
2.使用ES5中提供的新的API
var obj = {
name: [{
name: 'lisi'
},{
name: 'zhang',
age: [{
name: 'liu'
}]
}],
age: '90'
}
function deepClone(obj) {
//定義一個變量來存儲結果
var result;
//判斷傳遞的類型
if(obj === null || typeof obj !== 'object') return obj;
//處理日期對象
if(obj instanceof Date){
result = new Date();
result.setTime(obj.getTime());
return result;
}
if(typeof obj === 'object') {
result = JSON.parse(JSON.stringify(obj);
return result;
}
}
感謝各位的閱讀,以上就是“JavaScript中如何遞歸的方式來進行復制”的內容了,經過本文的學習后,相信大家對JavaScript中如何遞歸的方式來進行復制這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。