原生js實(shí)現(xiàn)復(fù)制對象、擴(kuò)展對象 類似jquery中的extend()方法
jq的extend()方法能很方便的實(shí)現(xiàn)擴(kuò)展對象方法,語法如下:$.extend(obj1,boj2,obj3);
現(xiàn)在要實(shí)現(xiàn)的是:原生js實(shí)現(xiàn)復(fù)制對象,擴(kuò)展對象,類似jq中的extend()方法,具體實(shí)例如下:
現(xiàn)有3個(gè)對象字面量:
var o1={hello:1,old:555},
o2 = {
abc: 55555555,
hello: 2,
fun: function() {
alert(111);
}
},
o3={third:9999};
實(shí)現(xiàn)目標(biāo):
復(fù)制o1對象,把 o2,o3的對象屬性和方法都擴(kuò)展進(jìn)前面復(fù)制得到的對象中并輸出。
<script>
var o1={hello:1,old:555},
o2 = {
abc: 55555555,
hello: 2,
fun: function() {
alert(111);
}
},
o3={third:9999};
function cloneObj(oldObj) { //復(fù)制對象方法
if (typeof(oldObj) != 'object') return oldObj;
if (oldObj == null) return oldObj;
var newObj = new Object();
for (var i in oldObj)
newObj[i] = cloneObj(oldObj[i]);
return newObj;
};
function extendObj() { //擴(kuò)展對象
var args = arguments;
if (args.length < 2) return;
var temp = cloneObj(args[0]); //調(diào)用復(fù)制對象方法
for (var n = 1; n < args.length; n++) {
for (var i in args[n]) {
temp[i] = args[n][i];
}
}
return temp;
}
var t=extendObj(o1,o2,o3);
console.log(t);
console.log(o1);
console.log(o2);
console.log(o3);
</script>
- 淺談jQuery中的$.extend方法來擴(kuò)展JSON對象
- 基于jQuery的一個(gè)擴(kuò)展form序列化到j(luò)son對象
- 模仿JQuery.extend函數(shù)擴(kuò)展自己對象的js代碼
- 擴(kuò)展jQuery對象時(shí)如何擴(kuò)展成員變量具體怎么實(shí)現(xiàn)
- JQuery 動(dòng)態(tài)擴(kuò)展對象之另類視角
- jQuery.extend()、jQuery.fn.extend()擴(kuò)展方法示例詳解
- Jquery 的擴(kuò)展方法總結(jié)
- Jquery中擴(kuò)展方法extend使用技巧
- 修改或擴(kuò)展jQuery原生方法的代碼實(shí)例
- JavaScript自執(zhí)行函數(shù)和jQuery擴(kuò)展方法詳解
- JQuery擴(kuò)展對象方法操作示例
相關(guān)文章
Bootstrap學(xué)習(xí)筆記之css樣式設(shè)計(jì)(1)
這篇文章主要為大家詳細(xì)介紹了bootstrap學(xué)習(xí)筆記之css樣式設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
一文看懂如何簡單實(shí)現(xiàn)節(jié)流函數(shù)和防抖函數(shù)
KnockoutJS 3.X API 第四章之表單value綁定
javascript 模擬坦克大戰(zhàn)游戲(html5版)附源碼下載
詳解Typescript 內(nèi)置的模塊導(dǎo)入兼容方式

