星期二, 9月 21, 2010

clone json object

利用jquery可以很輕易的複製dom裡的object
$("input").clone();

但想複製json就沒辦法了
截錄了網友的做法
JSON.clone = function (obj) {
return JSON.parse( JSON.stringify( obj ) );
};

var obj = { "date": "2009-03-05", "amount": "0.1" };
var clonedObj = JSON.clone(obj);


A more elegant browser independent solution comes from Marijn Haverbeke (Elegant JavaScript):
function clone(o) {
function OneShotConstructor(){}
OneShotConstructor.prototype = o;
return new OneShotConstructor();
}


最後查一下jQuery本身的方法
利用extend的方法來當成一個新的
雖然感覺...怪怪的...
不過也算是簡單的達到目的了
var shot = {id:1,x=2,y=3};

//Method 2 jQuery.extend( [ deep ], target, object1, [ objectN ] ) v1.1.4
var newShot = jQuery.extend(true, {}, shot); //沒有target,而是直接return


Reference

沒有留言: