JavaScript关于继承

//定义动物类
function Animal(){...}
//原型方法
Animal.prototype={...}
//实现Cat继承Animal类
function Cat(){}
//创造实例
var cat1 = new Cat();
var cat2 = new Cat();

我们在实现继承时需要注意两件事:

一是在继承过程中将父类的方法和父类原型方法继承完全

二是不要让继承类的实例也就是上述cat1,cat2继承的属性为共享属性,也就是说在改cat1属性的时候,cat2的属性也被被动更改。

以下是几种继承方法:

1.拷贝进行继承

function Cat(name){
  var animal = new Animal();
  for(var p in animal){
    Cat.prototype[p] = animal[p];
  }
  Cat.prototype.name = name || 'Tom';
}

2.利用call和原型继承

function Cat(name){
  Animal.call(this);
  this.name = name || 'Tom';
}
Cat.prototype = new Animal();
Cat.prototype.constructer = Cat;

3.利用空对象

function Cat(name){
  Animal.call(this);
  this.name = name || 'Tom';
}
(function(){
  // 创建一个没有实例方法的类
  var Super = function(){};
  Super.prototype = Animal.prototype;
  //将实例作为子类的原型
  Cat.prototype = new Super();
})();
Cat.prototype.constructor = Cat;

最后推荐一篇博客:https://www.cnblogs.com/humin/p/4556820.html

你可能感兴趣的:(JavaScript关于继承)