ES6如何创建一个可继承的class类对象?
七娃博客646人阅读
ES6如何创建一个可继承的class类对象?js如何创建一个class类对象?js如何实现继承类?构造函数,继承类,创建实例有什么样的关系?经常看class类的函数,之前看着总是头大,最近发现能写了、理解了、看懂了,卧槽!得记录一下。
1.ES6创建对象类使用class
class Shape{ }
2.对象有参数,有自己得方法。参数用constructor构造声明,通过this获取对象得参数,并作为内部变量供方法使用。
另外,对象的方法可以自定义,但是不能用function声明了!
class Shape{ // 创建构造函数 constructor(name,area){ this.name = name; this.area = area; } // 创建类的方法 log(){ console.log(this.name+"形," + "面积:" + this.area); } }
3.创建对象的实例,通俗点说就是,new声明定义一个对象
let cricle = new Shape('圆','200')
4.执行对象类的方法
cricle.log()
5.继承类和继承类的方法,继承类用关键词extends
class Cricle extends Shape{ }
6.继承父类:要用super直接调用父类的构造函数,包括父类的方法一起继承过来了!
class Cricle extends Shape{ constructor(name,area,id){ super(name,area); // super调用父类的构造函数 this.id = id; } }
7.重写方法,当子类的方法与父类不一样时就需要重写,子类的函数名与父类一致就会重写(子方法为空也会重写父类的方法)
class Cricle extends Shape{ constructor(name,area,id){ super(name,area); // super调用父类的构造函数 this.id = id; } log(){ //重写替换父类的方法 console.log("id为"+this.id +"的" + this.name+"形," + "面积:" + this.area); } }
源码:
// 创建类 class Shape{ // 创建构造函数 constructor(name,area){ this.name = name; this.area = area; } // 创建类的方法 log(){ console.log(this.name+"形," + "面积:" + this.area); } } //继承类: extends关键字 class Cricle extends Shape{ constructor(name,area,id){ super(name,area); // super调用父类的构造函数 this.id = id; } log(){ //替换父类的方法 console.log("id为"+this.id +"的" + this.name+"形," + "面积:" + this.area); } } // 创建实例 let cricle = new Shape('圆','200') cricle.log() let cricle1 = new Cricle('椭圆','300',10) cricle1.log()
这样就完成了js实现一个对象类并继承的方法,其实这样走下来发现并没有最初学习起来那么头大,并不难,看来真的需要不断的温故知新,这样才能把基础夯实!不废话了,end!
评论 | 0 条评论
登录之后才可留言,前往登录