20.ES6的新特性:Class属性与方法
2023-09-27 14:23:04 时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>实例方法与静态方法</title>
</head>
<body>
<script>
// 实例方法:
// 通过类的实例对象调用的方法
// 实例对象:通过new关键字生成的对象
// 实例属性:
// 类的实例对象可以调用的属性
// 静态方法:
// 在一个方法前加上static关键字加上静态方法:该方法不会杯实例(new生成的对象)继承,而是直接通过类名进行调用
// 如果静态方法包含this关键字,这个this指向的是类,而不是实例
// 如果存在同样的名称,但是分别为静态方法和实例方法,不会覆盖,通过不同方式调用
// 静态属性:
// 使用类名去调用和定义的属性(类外定义)
class Person{
constructor(name,age){
this.name = name
this.age = age
}
say(){
console.log("实例方法测试");
}
static classMethod(){
console.log("静态方法测试");
}
}
// 这里的p就是实例对象
var p = new Person('iwen',200)
// say就是通过p去调用,所以教实例方法
p.say()
// 实例对象:通过p去调用
console.log(p.name);
// 静态方法的测试:
Person.classMethod()// 正常使用
// p.classMethod()//无法使用 会报错
// 静态属性测试 定义与调用:
Person.class = 1
console.log(Person.class);
</script>
</body>
</html>