詳解JS數(shù)據(jù)類型的值拷貝函數(shù)(深拷貝)
廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:
function mottoClone (obj) {
if (obj === null || typeof obj !== 'object') return obj;
if (obj instanceof Boolean) return new Boolean(obj.valueOf());
if (obj instanceof Number) return new Number(obj.valueOf());
if (obj instanceof String) return new String(obj.valueOf());
if (obj instanceof RegExp) return new RegExp(obj.valueOf());
if (obj instanceof Date) return new Date(obj.valueOf());
var cpObj = obj instanceof Array ? [] : {};
for (var key in obj) cpObj[key] = myClone(obj[key]);
return cpObj;
}
支持的數(shù)據(jù)類型或格式有:Boolean,Number,String,RegExp,Date,Function,Array,JSON
支持深拷貝(循環(huán)迭代),如:
var obj = {
id: 1,
name: 'xxx',
sayName: function () {
console.log('my name is' + this.name);
},
childs: [
{},
{},
...
],
opts: {
xxx: [],
...
},
...
};
var newObj = mottoClone(obj);
以上所述是小編給大家介紹的JS數(shù)據(jù)類型的值拷貝函數(shù)(深拷貝),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
微信小程序網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了微信小程序網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的實(shí)現(xiàn)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
超詳細(xì)小程序定位地圖模塊全系列開發(fā)教學(xué)
這篇文章主要介紹了超詳細(xì)小程序定位地圖模塊全系列開發(fā)教學(xué),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
js 綁定帶參數(shù)的事件以及手動(dòng)觸發(fā)事件
js 綁定帶參數(shù)的事件以及手動(dòng)觸發(fā)事件,需要的朋友可以參考下。2010-04-04
JavaScript模塊規(guī)范之AMD規(guī)范和CMD規(guī)范
本篇文章給大家介紹js模塊規(guī)范之AMD規(guī)范和CMD規(guī)范,模塊化是一種處理復(fù)雜系統(tǒng)分解為代碼結(jié)構(gòu)更合理,可維護(hù)性更高的可管理的模塊的方式,對(duì)js amd cmd規(guī)范感興趣的童鞋可以來本文學(xué)習(xí)2015-10-10

