# 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
上次更新: 6/26/2019, 10:38:12 PM