es6中类的使用
程序员文章站
2022-07-16 21:53:36
...
当类中没有constructor时,自动生成constructor
class Star{
constructor(name,age){
this.name = name;
this.age = age;
}
}
let a = new Star('aaa',18)
console.log(a)
//Star {name: "aaa", age: 18}
在类中添加方法
class Star{
constructor(name,age){
this.name = name;
this.age = age;
}
sing(song){
console.log('let me sing'+song);
}
}
类的继承
class Father{
constructor(){
}
money(){
console.log(100)
}
}
class Son extends Father{
}
let son = new Son()
//100
super关键字调用父类构造函数
class Father{
constructor(x,y){
this.x = x;
this.y = y;
}
sum(){
console.log(this.x + this.y);
}
}
class Son extends Father{
constructor(x,y){
super(x,y)//调用父类中的构造函数
}
}
let son = new Son(1,2)
son.sum() // 3
super调用父类普通函数
class Father{
say(){
return 'I am father'
}
}
class Son extends Father{
say(){
//return 'I am son'
console.log(super.say())
}
}
let son = new Son()
son.say() // I am father
调用方法时,遵循继承中的就近原则,优先子类中的方法,如果子类中没有,则调用父类中的方法
子类继承父类方法 同时拓展减法
class Father{
constructor(x,y){
this.x = x;
this.y = y;
}
sum(){
console.log(this.x + this.y);
}
}
class Son extends Father{
constructor(x,y){
//调用父类中的构造函数
//必须先调用父类的构造函数
super(x,y);
this.x = x;
this.y = y;
}
subtract(){
console.log(this.x - this.y);
}
}
let son = new Son(5,3)
son.subtract() // 2
son.sum() // 8
注意:
es6中类没有变量提升,所以必须先定义类,再使用类实例化对象。
类里面的共有属性和方法,必须加this使用
constructor 里面的this 指向实例对象,方法里面的this指向这个方法的调用者
上一篇: ES6语法之解构赋值
下一篇: ES6新语法
推荐阅读
-
Android开发中总结的Adapter工具类【附完整源码下载】
-
Android开发中button按钮的使用及动态添加组件方法示例
-
Android 中CheckBox的isChecked的使用实例详解
-
浅析Javascript ES6中的原生Promise
-
详解Javascript ES6中的箭头函数(Arrow Functions)
-
使用Math.max,Math.min获取数组中的最值实例
-
ES6中Math对象新增的方法实例详解
-
对Python中gensim库word2vec的使用详解
-
JavaScript中的原型prototype属性使用详解
-
JavaScript中Number.MIN_VALUE属性的使用示例