js继承

Posted zuoqiaodisan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js继承相关的知识,希望对你有一定的参考价值。

js继承

首先,我们应该理解,什么是继承?所谓继承,通俗讲,就是从某人处得到某些东西,大部分情况下都是儿子从父亲那继承。现在网上也有一句玩笑,叫“你想笑死我,然后继承我的蚂蚁花呗吗”。
js中的继承,同样也可以理解为上述意思,即从子从父那获取属性和方法。
在这里,我们介绍一下使用构造函数继承和prototype继承

1.构造函数继承

此方法是通过使用call或者apply将子构造函数中的this指向变为父构造函数,但是其缺点是父对象中的属性和方法并没有继承。
代码实现:

function Computer(name, type) {
    this.name = "电脑";
    this.type = "电器";
}

function Dell(name, type, color) {
    Computer.call(this,name,type);
    this.color = color;
}
  var dell1 = new Dell('blue');
  alert(dell1.name);//=>电脑

上述代码,通过call方法使得Dell继承了Computer的name和type。在输出子构造函数Dell的构造对象的name时,结果为“电脑”。

2.prototype继承

此方法主要是通过构造函数的prototype属性,将父构造函数构造的对象作为子构造函数的原型,与此同时子构造函数也继承了父构造函数,这就需要将洗构造函数指向其本身。
代码实现:

function Computer(name,type){
    this.name = "电脑";
    this.type = "电器";
}

function Dell(name, type, color) {
    Computer.call(this,name,type);
    this.color = color;
}
Dell.prototype=new Computer();
Dell.prototype.constructor=Dell;
var dell1 = new Dell('blue');
alert(dell1.name);//=>电脑
alert(dell1.type);//=>电器

————————————————————————————————————————————

以上是关于js继承的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

js代码片段: utils/lcoalStorage/cookie

JS代码片段:一个日期离现在多久了

js常用代码片段(更新中)

js常用代码片段

Chrome-Devtools代码片段中的多个JS库