js实现继承的几种方式实例讲解

来源:互联网 发布:java中链表 编辑:程序博客网 时间:2024/04/30 16:03
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD>  <TITLE> New Document </TITLE>  <META NAME="Generator" CONTENT="EditPlus">  <META NAME="Author" CONTENT="">  <META NAME="Keywords" CONTENT="">  <META NAME="Description" CONTENT="">  <script>     //打印函数 var _=function(o){   document.write(o+"<br/>"); } //打印数组的函数 var _a=function(arr){   for(var t in arr)     _(arr[t]); } //对象定义方法2function Stu(id,name){  this.id=id;  this.name=name;  this.getName=function(){     return this.name;  }}//定义子类,大学生function BigStu(id,name){  this.id=id;  this.name=name;}//继承方式1,prototype    BigStu.prototype=new Stu(1,"");//初始化大学生var bs=new BigStu(1,"陈新");_(bs.name);    _(bs.getName());//继承方式2,callfunction LittleStu(id,name){  Stu.call(this,id,name);}//调用var ls=new LittleStu(2,'余意');_(ls.name);    _(ls.getName());//继承方式3,applyfunction PrimaryStu(id,name){  Stu.apply(this,arguments);}//调用var ps=new PrimaryStu(3,'小余意');_(ps.name);    _(ps.getName());//继承方式4,最古老的的写法。冒充法function OldStu(id,name){  this.Stu=Stu;//对象冒充当前类的属性  this.Stu(1,"老余意")//给冒充的父类初始化.其实就是实例化  delete this.Stu;}   //调用var os=new OldStu(3,'老余意');_(os.name);    _(os.getName());  </script> </HEAD> <BODY>  </BODY></HTML>


0 0