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

继承关系.png

总结:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容