JS 的面向对象

JS 不是一门面向对象的语言,但是很多情况我们需要面向对象。

一、JS 继承的常用写法。

为什么一上来就写常用写法呢?很多的文章都写了很多关于js面向对象,继承的各种写法,发展史。其实我指向知道,JS的继承要怎么写。。。。。

demo:

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

 function Cat(name){
    this.name = name;
 }

Cat.prototype = new Animal();
Cat.prototype.constructor = Cat;

var cat1 = new Cat('小花');

1、Cat.prototype = new Animal();
这里赋值的作用是让Cat 指向一个Animal的实例
2、Cat.prototype.constructor = Cat;
这里是给Cat.prototype这个对象增加一个属性,完成function有constructor属性,并且修正Cat的构造函数是Cat

JS 的面向对象_第1张图片
继承关系.png

总结:

1、function 才有constructor,构造函数是function
2、JS的继承关系,是一个假的继承。说白了就是function的所有实例,有一个proto的属性,这个属性指向另一个存在的对象。

你可能感兴趣的:(JS 的面向对象)