JavaScript面向对象:类的继承
创始人
2024-04-10 21:47:03
0

继承

 

现实中的继承:子承父业,比如我们都继承了父亲的姓。

程序中的继承:子类可以继承父类的一些属性和方法。

语法:

class Father{   // 父类
} 
class  Son extends Father {  // 子类继承父类
}       

实例:

class Father {constructor(surname) {this.surname= surname;}say() {console.log('你的姓是' + this.surname);}
}
class Son extends Father{  // 这样子类就继承了父类的属性和方法}
var damao= new Son('刘');
damao.say();      

super 关键字

super 关键字用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数

这样会报错,因为父类的this指向的是父亲自己 

语法:

class Person {   // 父类constructor(surname){this.surname = surname;}
} 
class  Student extends Person {       // 子类继承父类constructor(surname,firstname){super(surname);             // 调用父类的constructor(surname)this.firstname = firstname; // 定义子类独有的属性}
}       

 要先有super,才能使用this 

注意: 子类在构造函数中使用super, 必须放到 this 前面  (必须先调用父类的构造方法,在使用子类构造方法)

 就近原则 输出的还是孩子

   继承中的属性或者方法查找原则: 就近原则

        1. 继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的

        2. 继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)

 

 用super就可以调用父类的普通函数

 刚刚想到了为什么要用构造函数,就是如果不使用constructor(),就不知道this.x指向的是那个。使用了constructor,把里面的x传给了this.x,这样就可以使用里面的方法

  案例:

 class Father {constructor(surname) {this.surname = surname;}saySurname() {console.log('我的姓是' + this.surname);}
}
class Son extends Father { // 这样子类就继承了父类的属性和方法constructor(surname, fristname) {super(surname);   // 调用父类的constructor(surname)this.fristname = fristname;}sayFristname() {console.log("我的名字是:" + this.fristname);}
}
var damao = new Son('刘', "德华");
damao.saySurname();
damao.sayFristname();      

super关键字 用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数。

语法

class Father {say() {return '我是爸爸';}
}
class Son extends Father { // 这样子类就继承了父类的属性和方法say() {// super.say()  super 调用父类的方法return super.say() + '的儿子';}
}
var damao = new Son();
console.log(damao.say());       

三个注意点:

1.在 ES6 中类没有变量提升,所以必须先定义类,才能通过类实例化对象.

2.类里面的共有属性和方法一定要加this使用.

3.类里面的this指向问题.

4.constructor 里面的this指向实例对象, 方法里面的this 指向这个方法的调用者

相关内容

热门资讯

2025汽车行业年鉴|政策篇:... 记者 周信 当中国汽车年产销即将双双突破3230万辆,全球每卖出三辆车就有一辆来自中国时,“内卷”却...
货拉拉取消车贴违约金制度 货拉拉发布第二期平台规则和产品功能优化成果。根据今年7月签署的《网络货运信息交易撮合平台保障货车司机...
国家发展改革委:2026年优化... 记者今天(30日)从国家发展改革委了解到,2026年优化实施“两新”政策方案发布。 优化支持范围。设...
獐子岛(002069)披露累计... 截至2025年12月30日收盘,獐子岛(002069)报收于3.69元,较前一交易日下跌1.86%,...
《中华人民共和国增值税法实施条... 中华人民共和国增值税法实施条例 第一章 总则 第一条 根据《中华人民共和国增值税法》(以下简称增值税...
李旻律师:诈骗频发 小红书作为... 12月23日,丽江市古城区文化和旅游局采取一项公开举措,向小红书平台发出公函,指出其未能有效履行平台...
山东京鲁律师事务所2025年度... 2025年,山东京鲁律师事务所在“公平正义”、“公益慈善”与“招商引资”三大领域取得丰硕成果,推选出...
北京朝阳严打金融犯罪推进源头治... 2025年12月30日,北京市朝阳区人民检察院召开新闻发布会,介绍2023年12月至2025年11月...
董事长决策安排内幕交易!锂矿巨... 一桩五年前的涉嫌内幕交易处罚,至今“余波”仍在。 12月29日晚间,锂矿龙头赣锋锂业(002460....
【李强签署国务院令 公布《中华... 【李强签署国务院令 公布《中华人民共和国增值税法实施条例》】国务院总理李强日前签署国务院令,公布《中...