JAVASCRIPT繼承方如此簡單

?????? 看了很多的js繼承方式都覺得不是很好,總是覺得不是很方便,用起來也不順。所以一直在查這方面的資料思考這個問題,終于有所收獲。忍不住要貼出來與大家共享,讓大家一起享受javascript繼承的快樂。

優點:只要聲明一個簡單的函數即可方便使用JAVASCRIPT的繼承,使用方法也只要一行代碼調用繼承方法即可,調用方式非常自然。
????????

下面是示例源代碼:
?? <script>
??? /**
?????? 首先給Object類添加繼承方法extends,
?????? 前兩句起繼承父類的作用,使得調用的子類能夠獲得父類的所有屬性和方法
?????? 后一句保存對一個對父類的引用,以便在需要的時候可以調用父類的方法
?????? 如果不需要使用父類的方法,最后一句可以刪除
???????方法名不能為extends,因為IE認為是關鍵字不讓用火狐下是可以的。屬性superClass也不能用super,也是關鍵字。不然看起來就更舒服了(那就太像java了)。
??? */
??? Object.prototype.extend = function(SuperClass){
????? this.SuperClass=SuperClass;
????? this.SuperClass();
????? this.superClass=new SuperClass();
??? }
???//下面是示例代碼
??? //聲明父類:第一個方法show將得到繼承,第二個方法將被覆蓋
??? function SuperClass(){
????? this.show=function(){
??????? alert('Call SuperClass.show()');
????? }
????? this.override=function(){
??????? alert('Call SuperClass.override() width "superClass.override()"');
????? }
??? }
??? //聲明子類:繼承父類,同時覆蓋了父類的方法override
??? function SubClass(){
????? //調用繼承方法繼承父類的屬性和方法
????? this.extend(SuperClass);
????? this.override=function(){
??????? alert('I have overrided SuperClass.override method.\nCall SubClass.override()');
????? }
??? }
??? //測試繼承的結果:
??? var s=new SubClass();
??? s.show(); //將調用父類的方法
??? s.override();//將調用子類覆蓋后的方法
??? s.superClass.override();//將調用父類的override方法
?</script>