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

js对象:继承

2017年12月27日 ⁄ 综合 ⁄ 共 889字 ⁄ 字号 评论关闭

js对象:继承

构造函数的继承-链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

call,apply,prototype--链接: http://blog.csdn.net/haijiaoxiaowu/article/details/5148657

//比如,现在有一个"动物"对象的构造函数。
  function Animal(){
    this.species = "动物";
  }
//还有一个"猫"对象的构造函数。
  function Cat(name,color){
    this.name = name;
    this.color = color;
  }
//怎样才能使"猫"继承"动物"呢?

一、构造函数apply/call绑定

将父对象的构造函数绑定在子对象上,在子对象构造函数中通过调用apply()或call()方法实现。

function Cat(name,color){
  Animal.apply(this, arguments);
  this.name = name;
  this.color = color;
}
var cat1 = new Cat("大毛","黄色");
alert(cat1.species); // 动物

二、借用prototype属性

将子对象构造函数的prototype指向父对象的实例(此时清空了prototype属性的所有内容),再重新将prototype的constructor属性指向子对象的构造函数。怎么实现的呢?因为子对象可以通过_proto_属性,按照原型链去寻找父对象的属性和方法,从而实现了继承。

//如果"猫"的prototype对象,指向一个Animal的实例,那么所有"猫"的实例,就能继承Animal了。
  Cat.prototype = new Animal();
  Cat.prototype.constructor = Cat;
  var cat1 = new Cat("大毛","黄色");
  alert(cat1.species); // 动物

抱歉!评论已关闭.