JavaScript繼承方式(4)

來源:互聯網
上載者:User

4,繼承工具函數四

view sourceprint?01 /** 

02  * @param {String} className 

03  * @param {String/Function} superClass 

04  * @param {Function} classImp 

05  */

06 function $class(className, superClass, classImp){ 

07     if(superClass === "") superClass = Object; 

08     var clazz = function(){ 

09         return function(){ 

10             if(typeof this.init == "function"){ 

11                 this.init.apply(this, arguments); 

12             } 

13         }; 

14     }(); 

15     var p = clazz.prototype = new superClass(); 

16     var _super = superClass.prototype; 

17     window[className] = clazz; 

18     classImp.apply(p, [_super]); 

19 }

定義父類Person

view sourceprint?01 /** 

02  * 父類 Person 

03  */

04 $class(Person,,function(){ 

05     this.init = function(name){ 

06         this.name = name; 

07     }; 

08     this.getName = function(){ 

09         return this.name; 

10     }; 

11     this.setName = function(name){ 

12         this.name = name; 

13     } 

14 });

子類Man

view sourceprint?01 /** 

02  * 子類 Man 

03  */

04 $class(Man, Person, function(supr){ 

05     this.init = function(name, age){ 

06         supr.init.apply(this,[name]); // 該句很重要 

07         this.age = age; 

08     }; 

09     this.getAge = function(){ 

10         return this.age; 

11     }; 

12     this.setAge = function(age){ 

13         this.age = age; 

14     }; 

15 }); 

16 var m = new Man(Jack,25); 

17 console.log(m.name); // Jack 

18 console.log(m.age); // 25

從輸出看可以看到子類Man的確繼承了父類的屬性和方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.