RyoSugimoto
10/10/2014 - 9:10 AM

オブジェクトを結合する関数。

オブジェクトを結合する関数。

function extend (out) {
	out = out || {};
	for (var i = 1; i < arguments.length; i++) {
		if (!arguments[i]) {
			continue;
		}
		for (var key in arguments[i]) {
			if (arguments[i].hasOwnProperty(key)) {
				out[key] = arguments[i][key];
			}
		}
	}
	return out;
}

// Usage
extend({}, objA, objB);
function deepExtend (out) {
	out = out || {};
	for (var i = 1; i < arguments.length; i++) {
		var obj = arguments[i];
		if (!obj) {
			continue;
		}
		for (var key in obj) {
			if (obj.hasOwnProperty(key)) {
				if (typeof obj[key] === 'object') {
					deepExtend(out[key], obj[key]);
				} else {
					out[key] = obj[key];
				}
			}
		}
	}
	return out;
}

// Usage
deepExtend({}, objA, objB);