21 一月 2010 @ 5:10 下午 

Javascript 在指定物件為變數時是傳「reference」,若不知道這個特性很容易搞不清楚你的值為啥被改掉了,jQuery的extend函式可以做deep Clone,也就是遞迴將物件裡頭的任一成員都做clone,但針對array好像有點問題,因此我寫了一支小function來呼叫,以後要做cloneObject時可以直接服用。

/*
 * cloneObject 會完整clone一個全新的Object
 * 若傳入的object是array, 則會回傳array
 */
(function($) {
	$.extend($, {
		cloneObject : function(obj){
			var newObj;
			if($.isArray(obj)){
				newObj = [];
				for(var i=0; i<obj.length; i++){
					newObj.push(arguments.callee(obj[i]));
				}
				return newObj;
			}else{
				newObj = {};
				return $.extend(true, newObj, obj);
			}
		}
	});
})(jQuery)

Posted By: BLACKBING
Last Edit: 21 一月 2010 @ 05:13 下午

EmailPermalinkComments (0)
Tags
Categories: jQuery, plugin

 Last 50 Posts
 Back
Change Theme...
  • Users » 30
  • Posts/Pages » 64
  • Comments » 35
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

About Me



    No Child Pages.

留言板



    No Child Pages.

Album



    No Child Pages.