码迷,mamicode.com
首页 > Web开发 > 详细

js继承之一(借用构造函数)

时间:2017-04-16 14:07:05      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:副本   如何   拷贝   div   对象   rip   传递参数   on()   color   

现在,已经知道了原型对象,原型链的实现,原型链式继承的缺陷;那么如何避免这个缺陷?

在子类中借用父类的构造函数

//定义一个CarModel类
function CarModel(c){
      this.color=c||"白色";
      this.arr=[1,2,3];
      this.getColor=function(){
	        console.log(‘我的颜色是‘+this.color);
      }
}
//car类有自己的属性,比如品牌
function Car(brand){
	 CarModel.call(this);//借用父类的构造函数
	 this.brand=brand;
     this.getBrand=function(){
	      console.log(‘我的品牌是‘+this.brand);
      }
}
//car类需要继承自carmodel,汽车共有的属性color放在carmodel上
Car.prototype=new CarModel();

var car1=new Car("丰田");

console.log(car1);

  结果:

技术分享

 

达到的效果相当于,子类拷贝了一份父类的方法和属性,加上自己的方法和属性;

优点:

  1. 解决了原型链式继承中,修改父类引用属性的问题
  2. 能够向父类构造函数传递参数了

缺点:

  1. 实例并不是父类的实例,只是子类的实例!
  2. 无法实现函数复用,每个子类都有父类实例函数的副本

 

js继承之一(借用构造函数)

标签:副本   如何   拷贝   div   对象   rip   传递参数   on()   color   

原文地址:http://www.cnblogs.com/llauser/p/6718587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!