# Class
# 日常用法
class People {
constructor(name, age){
this.name = name;
this.age = age;
}
// 构造函数方法
sayName(){
return this.name;
}
sayAge(){
return this.age;
}
// 取值函数
get sex(){
return `man`
}
// 存值函数
set sex(newName){
console.log(`setter name is ${newName}`);
}
/*
* 静态方法
* 如果静态方法中包括this,那么this指向class构造函数而不是实例
* */
static hello(){
console.log('hello everyone!');
}
/*
* 静态方法调用静态方法
* */
static goodbye(){
console.log(this)
this.hello();
console.log('goodbye everyone!');
}
// 构造方法调用静态方法
sayHello(){
this.constructor.hello();
}
}
let uncle = new People('大叔·杨', 30);
uncle.sayName(); // '大叔·杨'
uncle.sayAge(); // 30
uncle.sayHello();
// getter & setter
console.log(uncle.sex);
uncle.sex = 'big man'
console.log(uncle.sex);
// class name属性
console.log(People.name); // 'People'
// 调用静态方法
People.hello(); // 'hello everyone!'
People.goodbye(); // 'hello everyone!'; 'goodbye everyone!'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
← Proxy Async await →