ES6语法(五)知识总结

类的继承

ES6中class继承extends,super的使用

class Animal{
	constructor(name){
		this.name=name;
		this.thirsty=100;
		this.food=[];
	}
	drink(){
		return this.thirsty -= 10;
	}
	eat(item){
		this.food.push(item);
	}
}

class Dog extends Animal{
	constructor(name,breed){
		super(name);//将父类的方法全部执行一遍,如果不写这个super(),将无法继承父类且报错
		this.breed=breed;
	}
}
var dog=new Dog("旺财","中华田园犬")

运行结果:

如果不写super():
在这里插入图片描述

继承内置构造函数

class moviesList extends Array{
	constructor(name,...movies){
		super(...movies);
		this.name=name;
	}
}

var movies = new moviesList("我最喜欢的电影",
	{name:"start12",star:"10"},
	{name:"start13",star:"10"},
	{name:"start14",star:"10"},
	{name:"start15",star:"10"}
							)

运行结果如下:

不加…的super情况下

class moviesList extends Array{
	constructor(name,...movies){
		super(movies);
		this.name=name;
	}
}

var movies = new moviesList("我最喜欢的电影",
	{name:"start12",star:"10"},
	{name:"start13",star:"10"},
	{name:"start14",star:"10"},
	{name:"start15",star:"10"}
							)

添加数据

class moviesList extends Array{
	constructor(name,...movies){
		super(movies);
		this.name=name;
	}
add(movie){
	this.push(movie);
	}
}


var movies = new moviesList("我最喜欢的电影",
	{name:"start12",star:"10"},
	{name:"start13",star:"10"},
	{name:"start14",star:"10"},
	{name:"start15",star:"10"}
							)

对类的方法里面的数据进行排序

class moviesList extends Array{
	constructor(name,...movies){
		super(...movies);
		this.name=name;
	}
add(movie){
	this.push(movie);
	}
topStar(limit){
	return this.sort((a,b)=>{return a.star>b.star?-1:1}).slice(0,limit);
	}
}

var movies = new moviesList("我最喜欢的电影",
	{name:"start12",star:"10"},
	{name:"start13",star:"10"},
	{name:"start14",star:"10"},
	{name:"start15",star:"10"}
							)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值