| Word-WRAP: break-word" bgColor=#f3f3f3>
<HTML> <HEAD> <TITLE> New Document </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <META NAME="Generator" CONTENT="Wawa Editor 1.0"> <META NAME="Author" CONTENT="八神奄"> <META NAME="Keywords" CONTENT="javascript,Java,XML,XSLT,ASP,VBScript,ASP .net,C#,C++,Database"> <META NAME="Description" CONTENT="不及格的程序员,无所不在"> </HEAD>
<BODY> <SCRIPT LANGUAGE="javascript"> <!-- function Object.prototype.equals(obj){ if(this == obj)return true; if(typeof(obj)=="undefined"obj==nulltypeof(obj)!="object")return false; var length = 0; var length1=0; for(var ele in this) length++;for(var ele in obj) length1++; if(length!=length1) return false; if(obj.constructor==this.constructor){ for(var ele in this){ if(typeof(this[ele])=="object") {if(!this[ele].equals(obj[ele]))return false;} else if(typeof(this[ele])=="function"){if(!this[ele].toString().equals(obj[ele].toString())) return false;} else if(this[ele]!=obj[ele]) return false; } return true; } return false; } function String.prototype.equals(str){ if(this==str)return true; return false; } function Function.prototype.equals(func){ if(this.toString().equals(func.toString()))return true; return false; } function Boolean.prototype.equals(bool){ if(this==bool)return true; if (bool instanceof Boolean){ return this.toString().equals(bool.toString()); } return false; }
function Object.prototype.clone(){ var newObj = new Object(); for(elements in this){ newObj[elements] = this[elements]; } return newObj; }
function Object.prototype.cloneAll(){ function clonePrototype(){} clonePrototype.prototype = this; var obj = new clonePrototype(); for(var ele in obj){ if(typeof(obj[ele])=="object") obj[ele] = obj[ele].cloneAll(); } return obj; }
var obj1 = new Object(); obj1.Team = "First"; obj1.Powers = new Array("Iori","Kyo"); obj1.msg = function(){alert()}; obj1.winner = new Object(); obj1.winner.name = obj1.Powers[0]; obj1.winner.age = 23; obj1.winner.from = "Japan"
var obj1_clone = obj1.cloneAll(); alert("刚刚克隆之后,对比结果为: "+obj1_clone.equals(obj1)) obj1_clone.Team = "Second"; obj1_clone.Powers = new Array("Jimmy","Anndy"); obj1_clone.winner.name = obj1_clone.Powers[1]; obj1_clone.winner.age = 22; obj1_clone.winner.from = "USA"; alert("修改过被克隆对像属性之后的对比结果: "+obj1_clone.equals(obj1)) alert("是否符合上面提到的第二条原则呢,结果为: "+(obj1_clone.constructor==obj1.constructor)) msg = "2003界拳皇单打独斗杯,拳皇挑战赛: \n\n A组 对战形式:\n\n" msg += obj1.Team+" 组 ,人员名单:"+obj1.Powers+"\n"; msg += "第一轮过后,胜利者为:"+obj1.winner.name +" ,参赛者年龄:"+obj1.winner.age+" ,来自岛国: "+obj1.winner.from+"\n"; msg += "\n\n B组 对战形式:\n\n" msg += obj1_clone.Team+" 组 ,人员名单:"+obj1_clone.Powers+"\n"; msg += "第一轮过后,胜利者为:"+obj1_clone.winner.name +" ,参赛者年龄:"+obj1_clone.winner.age+" ,来自国际警察部队: "+obj1_clone.winner.from+"\n"; alert(msg);
//--> </SCRIPT> </BODY> </HTML>
|