一篇文章快速搞懂 ES6中的class关键字

1.class中的静态方法、静态属性以及实例方法、实例属性

注:class中只能写构造器,静态方法、实例方法、静态属性,不能写其他的代码

class Animal {
	constructor(name,age){ //构造器,相当于构造函数,可以接受new的时候传进来的参数
        this.name = name //实例属性
        this.age = age //实例属性
    }
    see () {
        console.log('我是实例方法')
    }
    static info = '哈哈' //静态属性,用static关键字来修饰,用了static之后不需要用var这个来声明变量
	static show () { // 静态方法
        console.log('我是静态方法')
    }
}
//通过new出来的实例才能访问实例属性和方法
var a = new Animal('小猫',12)
console.log(a.name) //访问实例属性
a.see() //调用实例方法、

// 通过类名来访问静态属性和方法
console.log(Animal.info) // 访问静态属性
Animal.show() // 调用静态方法

2.class的extends关键字

// 父类,就是将一个共同的属性、或者方法写在父类中,跟函数的功能差不过,精简代码
class Person {
    constructor(name,age) {
        this.name = name
        this.age =age
    }
    say(name) {
        console.log('我是'+name+'人')
    }
}
class American extends Person{
    //当子类没有构造器的时候,可以不用调用super(),会默认把父类的构造器当作子类的构造器
}
class Chinese extends Person {
  //当子类要重写构造器的时候,需要调用一下super():即调用父类的构造器。如果需要用父类的实例属性,就要传值
    constructor(name,age,id){
  		super(name,age)
        // 声明实例属性要在调用super()之后,否则就会报错
        this.id = id
    }
}
var a = new American('托马斯',18)
var c = new Chinese('胡八一',31,'440881200002091031')
a.say('美国人')
console.log(a)
console.log(c)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值