js的继承

时间:2023-03-08 17:41:29

js要实现继承有很多方法,个人总结大致分为三种:

  function people(){

    this.specials = "人类";

  }

  function p1(name){

    this.name = name;

  }

一、使用call和apply

将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行

  function p1(name){

    people.apply(this,arguments);//在这里利用call和apply替换当前的调用对象

    this.name = name;

  }

二、使用原型链

  这里可以使用三种方法:

  1、让p1的prototype指向people的一个实例,也就是说将p1这个对象编程people的一个原型链上的属性。

    p1.prototype = new people();//这条语句会让p1的constructor指向people而不是p1这个函数,因此还需要加一条

    p1.prototype.constructor = p1;//constructor是原型对象的一个属性,指向引用它的函数对象

  2、让p1和people的prototype都指向同一个函数对象实例。

    p1.prototype = people.prototype;

    p1.prototype.constructor = p1;//在这里要注意在改变p1的同时也改变了people

  3、设置一个空对象

    var fun = function(){};

    fun.prototype = people.prototype;

    p1.prototype = new F();

    p1.prototype.constructor = p1;

三、对象实例之间的继承

  就是就是将被继承对象的属性拷贝给继承对象