<html><br /><head><br /><mce:script type="text/javascript"><!--<br />ClassModel =//類模型,用於建立類<br />{<br />create: function()<br />{<br />return function(){this.construct.apply(this,arguments);}<br />}<br />}<br />Extend = function(desc, src) //類比類繼承, 將一個對象的所有成員 複製到 另一個對象中<br />{<br />for(var c in src)<br />{<br />desc[c] = src[c];<br />}<br />return desc;<br />}<br />Object.prototype.extend = function(src)<br />{<br />return Extend.apply(this, [this, src]);<br />}<br />var human = ClassModel.create();<br />human.prototype =<br />{<br />construct : function() //建構函式<br />{<br />//alert("construct method");<br />//alert(this.speak() + "," + this.sleep());<br />},<br />speak : function()<br />{<br />alert("speak");<br />},<br />sleep : function()<br />{<br />alert("sleep");<br />},<br />sex : function()<br />{<br />alert("女");<br />}<br />}<br />var h = new human();<br />h.speak(); //調用human類的speak方法<br />var student = ClassModel.create();<br />student.prototype = (new human()).extend({ //student類繼承類human類<br />sex : function() //方法重載 (多態)<br />{<br />alert("男");<br />},<br />study : function()<br />{<br />alert("studying");<br />},<br />thinking : function()<br />{<br />alert("thinking");<br />}</p><p>});<br />var student = new student();<br />student.sleep(); //調用 父類(human) 的sleep方法<br />student.study(); //調用 student的study方法<br />student.thinking(); //調用 student的thinking方法<br />student.sex(); //結果為 男 不再是父類的 女</p><p>// --></mce:script><br /></head><br /></html>