Jqueryで、オブジェクトの値渡し($.objClone)

提供:wiki - PCスキルの小技・忘却防止メモ
移動: 案内, 検索

jqueryで、オブジェクトの値渡し($.objClone)。jsは、オブジェクトのコピーが参照渡しになってしまう。

ソース

配列・オブジェクトをコピーする。

objClone: function objClone(_obj) {
	/// <summary>
	/// オブジェクトのコピー(値渡し)
	/// </summary>

	if(typeof _obj == "object" && _obj.constructor.name == "Array") {
		var _clone = new Array();
	}
	else if (typeof _obj == "object" && _obj.constructor.name == "Object") {
		var _clone = ({});
	}
	else {
		return _obj;
	}

	for(var i in _obj){
		if(typeof _obj[i] == "object" && _obj[i] != null){
			_clone[i] = objClone(_obj[i]);
		}
		else{
			_clone[i] = _obj[i];
		}
	}
	return _clone;
}

別ファイルでするなら「function($) {$.extend(){}}」内にいれておく。

使い方

var obj = ({~~~~~});
var clone = $.objClone(obj);

関連項目