问题描述
js1={"a1":"a1"、"a2":"a2"}js2={"b1":"b1"、"b2":"b2"}js1、js2为json对象如何把js1中的对象和js2中的对象相加形成一个新的json对象?
解决方案
上面这个方法,什么对象都可以相加,主要是理解for...in的用法function extend(destination, source) { for (var property in source)destination[property] = source[property]; return destination;}var js1={"a1":"a1", "a2":"a2"};var js2={"b1":"b1", "b2":"b2"};extend(js1, js2);for(var j in js1) { alert(js1[j]);}
解决方案二:
KISSY库也有封装这功能,KISSY.mergevar S = KISSY, a = { a: 'a' }, b = { b: 'b' }, c = { b: 'b2', c: 'c' };var o = S.merge(a, b, c);S.log(o.a); // => 'a'S.log(o.b); // => 'b2'S.log(o.c); // => 'c'// 常用的使用场景:var defaultConfig = { /* ... */ };function ClassA(config) { // 合并配置信息 config = S.merge(defaultConfig, config);}
解决方案三:
function extend(destination, source) { for (var property in source) destination[property] = source[property]; return destination;}