javaScrip类构造函数的几种继承方法

原创 2016年08月29日 22:34:07
js类的构造函数继承:
1 apply方法:
              function Cat(name,color){
    Animal.apply(this, arguments);
    this.name = name;
    this.color = color;
  }
2 prototype

  Cat.prototype = new Animal();

  Cat.prototype.constructor = Cat;

  var cat1 = new Cat("大毛","黄色");
      
       alert(cat1.species); // 动物

//把Cat的皮肉totype赋值给Animal,再把Cat.prototype.constructor赋值给Cat

3 prototype直接等于父类的prototype

  function Animal(){ }

  Animal.prototype.species = "动物";

  Cat.prototype = Animal.prototype;


  Cat.prototype.constructor = Cat;

  var cat1 = new Cat("大毛","黄色");

  alert(cat1.species); // 动物
//     缺点,Cat的prototype和Animal的占用同一块内存空间,修改一个其它也会被修改

//     可以在其中新生成一个空的函数,作为中继

    var F = function(){};

    F.prototype = Parent.prototype;

    Child.prototype = new F();

    Child.prototype.constructor = Child;

    Child.uber = Parent.prototype;

4 直接把父类的元素拷贝到子类里

    var p = Parent.prototype;

    var c = Child.prototype;

    for (var i in p) {

      c[i] = p[i];

      }
    c.uber = p;

相关文章推荐

javascrip 构造函数说明

javascrip 构造函数说明 一、示例说明  /*          普通函数与构造函数本质上没有任何区别,只是我们调用的方式不同而已,关键在于一个字 new。 调用构造函数:newf...

类的继承和构造函数

  • 2014年04月03日 15:56
  • 869B
  • 下载

继承类的构造函数

  • 2014年10月24日 17:22
  • 48KB
  • 下载

JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型

//创建对象的方式1:基于对象的扩充其属性和方法。  var s=new Object();  s.name="zhangsan";  s.age=20;  s.say=function(){...
  • zzjiadw
  • zzjiadw
  • 2011年10月06日 01:47
  • 397

Kotlin学习记录(二)—— Kotlin的变量、属性、类、构造函数、继承、方法

变量和属性: 对于Kotlin来说,一切都是对象。听起来和Java一样啊,万物皆对象!不,不,不,是一切都是对象,包括原始基本类型。 当然,基本类型还是存在的,而且他们的使用方式和名字和Java都差别...

在C++中子类继承和调用父类的构造函数方法

构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需...

C++中了类继承和调用父类的构造函数方法

构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需...

java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序

java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javaScrip类构造函数的几种继承方法
举报原因:
原因补充:

(最多只允许输入30个字)