js/原型与继承

1、原型是一个对象、其它对象可以通过它来实现属性的继承

2、prototype是函数对象(function( ){ },typeof 类型是function)才拥有的属性;普通对象({ },typeof  类型是object)没有

3、构造函数的实例是普通对象,typeof 类型是object

4、prototype对象里有constructor属性,它指向该原型对应的构造函数

5、每一个构造函数的实例都有一个__proto__内部属性,它指向该实例对应构造函数的prototype

6、原型继承

  function  Animal(){this.type = ’ 动物’}

  function  Cat(name,color){

    this.name = name;

    this.color = color

  }

  Cat.prototype = new Animal()

  var  cat = new Cat('小可爱','red')

7、通过改变this指向继承其它对象的属性

  function  Animal(){this.type = ’ 动物’}

  function  Cat(name,color){

    Animal.apply(this)  //Animal在当前对象中执行,不会继承原型中的属性

    this.name = name;

    this.color = color

  }

8、寄生继承

  function object(o) {

    function F() {

      this.sex = ’ man’;

      this.year = 2020

    };

    F.prototype = o;

    return new F();

  }

  var bb = {

        name: 'abc',

        age: 2

  }

  var  obj = object(bb)

9、组合继承

  function  Animal(){this.type = ’ 动物’}

  function  Cat(name,color){

    Animal.apply(this)  //Animal在当前对象中执行,不会继承原型中的属性

    this.name = name;

    this.color = color

  }

  Cat.prototype = new Animal()

10、当原型和构造函数自身的属性名相同时,先用自身的属性

猜你喜欢

转载自www.cnblogs.com/cuishuangshuang/p/12632294.html