<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
/*
这class就是原型模板 你要是直接想.出属性或方法必须给他的属性或方法加static 不然不是静态的他就不是模板了
你不加static 你就用不了方法要new 对象去使用
*/
class Father{
static name;
/*
他与java的构造函数不一样他必须是constructor
*/
constructor(name){
this.name=name;
}
/**
* 因为他js不用去什么返回类型与公私有值所以就只剩下 static +函数名 或直接 函数名
*/
speak(){
console.log(this.name+":gkd");
}
}
let father=new Father("father");
father.speak();
/******************
* 下面是类的继承,md终于拜托了繁琐,那个我三天两头忘
*/
class Son extends Father{
constructor(name) {
//必须要调用父类的构造
super(name+"的son");
}
move(){
this.speak();
console.log("gogogo");
}
/**
* 子类重写父类的方法后就没法再调用父类的方法了super().使用不了
*/
}
let S=new Son("father");
S.move();
/*
下面是js类的getter setter
*/
class Person{
static name;
get getName(){
console.log("调用Person的getName方法");
return this.name;
}
set setName(name){
console.log("调用Person的setName方法");
this.name=name;
}
}
let p1=new Person();
p1.setName="支";
console.log(p1.getName);
</script>
</body>
</html>