构造函数的继承5种方法,基于构造函数的五种继承方法小结

本文实例汇报了php构造函数的接轨方法。分享给大家供大家仿效。具体如下:

举例说,未来有二个”动物”对象的构造函数。

基于构造函数的各种持续方法小结,构造函数多样小结

1.用到call或apply绑定构造函数

  animal.apply(this.arguments)

2.使用prototype属性  

  Cat.prototype = new Animal();

  Cat.prototype.constructor = Cat;

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

  alert(cat1.species); // 动物

3.间接集成prototype属性

  function Animal(){ }

  Animal.prototype.species = "动物";



  Cat.prototype = Animal.prototype;

  Cat.prototype.constructor = Cat;

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

  alert(cat1.species); // 动物

构造函数的继承5种方法,基于构造函数的五种继承方法小结。4.利用空对象作为中介

  var F = function(){};

  F.prototype = Animal.prototype;

  Cat.prototype = new F();

   Cat.prototype.constructor = Cat;

  将上面的方法封装成一个函数,便于使用:

    function extend(Child, Parent) {

      var F = function(){};

      F.prototype = Parent.prototype;

      Child.prototype = new F();

      Child.prototype.constructor = Child;

      Child.uber = Parent.prototype;

    }

5.拷贝持续

function extend2(Child, Parent) {

    var p = Parent.prototype;

    var c = Child.prototype;

    for (var i in p) {

      c[i] = p[i];

      }

    c.uber = p;

  }

那些函数的成效,正是将父对象的prototype对象中的属性,一一拷贝给Child对象的prototype对象。

以上那篇基于构造函数的三种持续方法小结正是我分享给大家的全体内容了,希望能给大家一个参考,也愿意我们多多援助帮客之家。

1.使用call或apply绑定构造函数 animal.apply(this.arguments)
2.应用prototype属性 Cat.prototype =…

1.选择call或apply绑定构造函数

率先种状态:子类未有定义构造函数时,暗许承袭。例子:

function Animal(){
    this.species = "动物";
  }
  animal.apply(this.arguments)
<?php
class A{
 public $name;
 function __construct(){
 echo $this->name="小强";
 }
}
class B extends A{

}
$bb = new B();
?>

还应该有二个”猫”对象的构造函数

2.使用prototype属性  

输出结果:小强

function Cat(name,color){
    this.name = name;
    this.color = color;
  }
  Cat.prototype = new Animal();

  Cat.prototype.constructor = Cat;

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

  alert(cat1.species); // 动物

第三种情况:子类定义了构造函数,则不会被接二连三。实例:

如何技艺使”猫”承接”动物”呢?

3.直接集成prototype属性

<?php
class A{
 public $name;
 function __construct(){
 echo $this->name="小强";
 }
}
class B extends A{
 function __construct(){
 echo "BBBBBB子类";
 }
}
$bb = new B();
?>
  • 一、 构造函数绑定
    第一种艺术也是最轻松易行的法子,使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行:
  function Animal(){ }

  Animal.prototype.species = "动物";



  Cat.prototype = Animal.prototype;

  Cat.prototype.constructor = Cat;

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

  alert(cat1.species); // 动物

出口结果:BBBBBB子类

4.利用空对象作为中介

其两种情形:即便须求调用父类的构造函数,则足以行使:parent::父类函数
或 父类名::父类函数。

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

  F.prototype = Animal.prototype;

  Cat.prototype = new F();

   Cat.prototype.constructor = Cat;

  将上面的方法封装成一个函数,便于使用:

    function extend(Child, Parent) {

      var F = function(){};

      F.prototype = Parent.prototype;

      Child.prototype = new F();

      Child.prototype.constructor = Child;

      Child.uber = Parent.prototype;

    }

盼望本文所述对大家的php程序设计有所协助。

  • 二、 prototype模式
    其次种格局越来越宽泛,使用prototype属性。
    假使”猫”的prototype对象,指向三个Animal的实例,那么富有”猫”的实例,就能够承袭Animal了。

5.拷贝三番五次

你只怕感兴趣的小说:

  • PHP接口继承及接口多三番柒次原理与达成格局详解
  • PHP面向对象程序设计高等本性详解(接口,承接,抽象类,析构,克隆等)
  • PHP入门教程之面向对象的特点剖析(继承,多态,接口,抽象类,抽象方法等)
  • php
    接口类与抽象类的实在效益
  • 详细解读PHP中接口的施用
  • php接口和抽象类使用示例详解
  • PHP类承继 extends使用介绍
  • PHP面向对象三大特点学习(丰裕知晓抽象、封装、承袭、多态)
  • php类的概念与后续用法实例
  • php
    三大特点:封装,承继,多态
  • PHP接口多一连及tarits达成多一而再成效的办法

function extend2(Child, Parent) {

    var p = Parent.prototype;

    var c = Child.prototype;

    for (var i in p) {

      c[i] = p[i];

      }

    c.uber = p;

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

以此函数的法力,就是将父对象的prototype对象中的属性,一一拷贝给Child对象的prototype对象。

代码的第一行,大家将Cat的prototype对象指向三个Animal的实例。

如上那篇基于构造函数的三种持续方法小结就是笔者分享给大家的全体内容了,希望能给我们多个参阅,也指望大家多多扶助脚本之家。

  Cat.prototype = new Animal();

你大概感兴趣的篇章:

  • JS继承之借用构造函数承继和烧结承继
  • 浅谈JS继承_借用构造函数 &
    组合式继承
  • JavaScript
    原型承袭之构造函数传承
  • JavaScript中央银行使构造函数完毕持续的代码
网站地图xml地图