class与classes的用法辨析,es6 class语法
这篇文章带给你一些关于javascript的知识。主要介绍了关于课堂的相关问题。ES6引入了类的概念,类可以用class关键字定义。这是一种更符合我们通常理解的面向对象语言。下面就来看看吧,希望对你有帮助。
【相关推荐:javascript视频教程,web前端】
class简介
传统JS只有对象的概念,没有类的概念,因为JS是一种基于原型的面向对象语言,原型对象的特点是与新对象共享所有属性。
ES6引入了类的概念,可以通过class关键字来定义。这是一种更符合我们通常理解的面向对象语言。
Person类{ //定义一个名为Person的类。
//构造函数,用于接受参数
构造函数(x,y){
this.x=x//这表示实例对象。
this.y=y
}
todo some(){///这是一个类方法,不需要添加函数。有多种不用逗号分隔的方法。
Alert(警报(this.x 是 this.y 岁);
}
}
导出默认人员;
静态方法和静态属性
静态方法和静态属性是使用static关键字的属性和方法。
静态方法
静态classMethod(){
console.log(123456 )
}静态方法不会被子类继承,子类不能在静态方法中调用这个,指向class类,而不是类的实例。所以静态方法只能通过类名来调用,让p=new Point()不能被实例调用;
p . class method();//错误
静态属性
静态道具=1;//静态属性静态属性不能被子类继承,子类也不能调用静态属性。静态属性只能被类名调用,不能被类的实例调整
class继承extends
class可以通过使用extends关键字继承ES6继承,super()必须用在子类的构造函数中。因为ES6继承是先把父类实例对象的属性和方法加到this上,然后调用子类的构造函数来修改this this。如果子类没有定义构造函数方法,默认情况下super()会添加上层子类的方法和属性,但是静态方法和属性必须从调用importclasstest。/classtest 由子类的类名表示;//首先介绍父类
class Man扩展classtest{
Constructor(x,y){ //构造函数要尽可能和父类的参数保持一致。
super();//使用super()关键字,这必须放在子类构造函数的第一个位置。
this.x=x
this.y=y
}
}
导出默认Man
class的取值函数getter和存值函数setter
getter和setter用于读取值并将其传递给类的属性。
Getter函数和setter函数可以自定义赋值和取值的行为。当属性只有getter而没有setter时,它是只读的,不能被赋值,即使是第一次初始化。
如果变量被定义为private(定义在类的花括号之外),你可以只使用getter而不使用setter。
设data=[1,2,3,4];//放在类的外部,这是一个私有变量,只能读取
类别人员{
//构造函数
构造函数(x,y){
this.x=x
this.y=y
}
获取x(){
console . log( get name );
归还这个。_ name//获取以读取属性
}
设置x(x){
console . log( set name );
这个。_ name=x;//set为属性赋值
}
获取数据(){
返回数据;//只读属性。属性返回的值只能是私有变量。
}
todoSome(){
Alert(警报(this.x 是 this.y 岁);
}
静态尹达(){
alert(尹达);
}
}
导出默认人员;如何使用:
var测试=新的this。$myutils.classtest(哈哈, 18 );
test.x=哈哈3 ;//实例化时更改了x的值
test . todo some();//输出:哈哈3的年龄是18岁。这已经不是实例化的时候了,哈哈。
console . log(test . data);//结果:Print [1,2,3,4]
注意事项:
1。在类中定义方法时,不能在方法中加入function关键字,因为JS中的构造函数是由function定义的,两者是分开的。
2.所有方法都不应该用逗号分隔,否则将会报告错误。
【相关推荐:javascript视频教程,web前端】以上是ES6中总结课堂知识点的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。