js中的class类

本文介绍了JavaScript ES6中的class语法,包括类的创建、静态属性、实例方法、静态方法和继承。class提供了更简洁的面向对象编程方式,静态属性只能通过类访问,静态方法和静态属性挂载在constructor上,而实例方法和属性挂载在实例对象上。此外,还讨论了class中的继承,子类可以通过super()调用父类的构造函数和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是es6的新特性,用于实现面向对象的编程

1.class类的创建

  1. 创建一个class类
class myClass{
	//构造器,默认为空的构造器
	//当class在被new时就会调用构造器
	//相当于function
	//function myClass(name,age){
	//	this.name=name
	//	this.age=age
	//}
	constructor(name,age){
		//这些都是实例属性
		//只有实例才能访问
		this.name=name
		this.age=age
	}
}
  1. 创建类实例对象
var i=new myClass('小明'18)

2.class中的静态属性

  1. 创建静态属性
class myClass{
	static info="这是myClass的静态属性"
}
  1. 静态属性的使用
    静态属性只有类才能访问,不能通过实例进行访问
console.log(myClass.info)
//i.info访问不到
  1. function中的静态属性
//直接在外部挂载给构造函数就是给function定义静态属性
function myFunction(){}
myFunction.info="这是function的静态属性"
//使用
console.log(myFunction.info)

3.class中的实例方法

  1. 定义实例方法
class myClass{
	//只有new出来的实例才能访问
	//类无法访问
	aFunction(){
		console.log('这是myClass的实例方法')
	}
}
  1. 实例方法的使用
var i=new myClass()
i.aFunction()
  1. function中的实例方法
function myFunction(){}
myFunction.prototype.aFunction=function(){
	console.log('这是function中的实例方法')
}
//使用
var a=new myFunction()
a.aFunction()

4.class中的静态方法

  1. 定义静态方法
class myClass{
	//只有类才能访问
	//实例无法访问
	static staticFunction(){
		console.log('这是myClass的静态方法')
	}
}
  1. 静态方法的使用
myClass.staticFunction()
  1. function中的静态方法
function myFunction(){}
myFunction.staticFunction=function(){
	console.log('这是function中的静态方法')
}
//使用
myFunction.staticFunction()

在class内部只能写构造函数,静态属性,静态方法,实例方法
class的静态方法和静态属性都挂载到constructor上,实例属性和方法都挂载到了实例对象上
就是把function封装成了class,class的本质还是function,使用起来更加方便了

5.class中的继承

  1. 定义父类
class father{
	constructor(name,age){
		this.nane=name
		this.age=age
	}
	holle(){
		console.log('holle')
	}
}
  1. 继承父类
class son extends father{
}

继承之后,如果子类中没有定义,就会沿用父类中的方法或属性
子类对父类的方法和属性可以进行重构和重载
但是,如果是继承的父类中有定义构造函数
就必须加一个super()
然后接着添加子类的构造方法,不能将父类中的构造函数覆盖
super()是对父类构造器的一个引用,相当于父类中的constructor()方法直接写入到了子类中

在 JavaScript 中,`class` 是一种创建对象的模板或蓝图,用于定义对象的属性和方法。以下是 `class` 的基本用法: 1. 定义: ```javascript class MyClass { constructor() { // 构造函数,用于初始化对象实例 } method1() { // 定义的方法 } method2() { // 定义另一个的方法 } } ``` 使用 `class` 关键字定义一个,并在内部定义构造函数和其他方法。构造函数使用 `constructor` 关键字定义,用于初始化对象实例。其他方法则直接在内部定义,不需要使用关键字。 2. 创建对象实例: ```javascript const myObj = new MyClass(); ``` 使用 `new` 关键字和名来创建对象实例。可以像调用普通函数一样调用来创建新的对象。 3. 调用对象方法: ```javascript myObj.method1(); myObj.method2(); ``` 通过对象实例使用点 `.` 语法调用中定义的方法。 4. 的继承: ```javascript class ChildClass extends ParentClass { constructor() { super(); // 子构造函数的初始化 } childMethod() { // 子独有的方法 } } ``` 使用 `extends` 关键字实现的继承。子可以继承父的属性和方法,并添加自己特有的属性和方法。在子的构造函数中,需要使用 `super()` 调用父的构造函数。 这些是 `class` 的基本用法。通过定义,可以创建多个对象实例,并共享的属性和方法。还允许使用继承机制,实现的层次结构和代码重用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员徐小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值