javascript 中的继承

js中怎么去实现继承:采用原型链的概念
                
 
                // 原型继承
                //原型继承的特点:即继承了父类的模版,又继承了 父类的原型对象
                /*
                // 父类
                function Person(name, age){
                    this.name = name ; 
                    this.age  = age ;
                }
                // 父类的原型对象属性
                Person.prototype.id = 10 ;
                
                // 子类
                function Boy(sex){
                    this.sex = sex ; 
                }
                
                //继承已经实现了 
                Boy.prototype = new Person('z3');
            
                var b = new Boy();
                alert(b.name);  //   z3
                alert(b.id);  //  10


             // 类继承(只继承模版,不继承原型对象) (借用构造函数的方式继承)
                /*
                // 父类
                function Person(name, age){
                    this.name = name ; 
                    this.age  = age ;
                }
                // 父类的原型对象属性
                Person.prototype.id = 10 ;
                
                // 子类
                function Boy(name , age , sex){
                    // call apply
                    Person.call(this,name,age);   //  注意这里  采用的  apply   call  
                    this.sex = sex ; 
                }
                
                var b = new Boy('张三' , 20 , '男');
                //alert(b.name);
                //alert(b.age);
                //alert(b.sex);
                //alert(b.id); //undefined    父类的原型对象并没有继承   

 通过这2个demo   来理解  javascript中的继承 

接下来看一下  // 原型继承+借用构造函数继承 = 混合继承

<pre name="code" class="html">                               // 父类
				function Person(name, age){
					this.name = name ; 
					this.age  = age ;
				}
				// 父类的原型对象属性
				Person.prototype.id = 10 ;
				Person.prototype.sayName = function(){alert(this.name);};
				
				// 子类
				function Boy(name , age , sex){
					// call apply
					Person.call(this,name,age); // 1 借用构造函数继承 继承父类的模版
					this.sex = sex ; 
				}	
				
				// 2 原型继承
				// 只剩下 父类的实例 和 父类的原型对象的关系了
				Boy.prototype = new Person(); //继承父类的原型对象
				
				
				var b = new Boy('李四' , 20 , '男');
				alert(b.name);
				alert(b.sex);
				b.sayName();


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值