现在的位置: 首页 > 综合 > 正文

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

2018年05月20日 ⁄ 综合 ⁄ 共 1066字 ⁄ 字号 评论关闭
<!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]);
	 }

	 

	//对象定义方法2
	function 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,call
	function LittleStu(id,name)
	{
	  Stu.call(this,id,name);
	}

	//调用
	var ls=new LittleStu(2,'余意');
	_(ls.name);
    _(ls.getName());

	//继承方式3,apply
	function 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>

抱歉!评论已关闭.