//父類 function BaseFun() { var hello = "HelloWorld"; this.HelloPublic = "Hello--World"; var privatefun = function () { alert("hellow"); } this.publicfun = function () { var a = this.HelloPublic; alert("this is public funtion" + a); } } //子類 function SubFun() { BaseFun.apply(this, arguments);// 建立繼承關系 this.SubHello = function () { alert("sub ok"); } } //動物基類 function BaseAnimal() { this.Type = "Animal"; this.Eat = function () { alert(this.Type + "會吃東西方法"); } this.Walter = function () { alert(this.Type + "喝水"); } } //豬子類 function Pie() { //子類方法覆蓋父類方法 this.Eat = function (arg) { alert(arg); } } //狗子類 function Dog() { } //prototype屬性,指定為該屬性的值,該構造器的實例對象自動繼承 Dog.prototype={ eatfood:function () { alert("吃東西"); }, sleep:function () { alert("睡覺"); } };
function getFun() { var basef=new BaseFun(); var a=basef.HelloPublic; basef.HelloPublic="我是父類"; basef.publicfun(); var sub=new SubFun(); sub.HelloPublic="我是子類"; sub.publicfun(); var pie=new Pie(); pie.Eat("吃東西"); //建立繼承關系 Pie.prototype=new BaseAnimal(); var p=new Pie(); p.Type="豬"; p.Walter(); var dog=new Dog(); dog.sleep(); dog.eatfood(); }