zl程序教程

您现在的位置是:首页 >  后端

当前栏目

20.ES6的新特性:Class属性与方法

ES6属性方法 特性 20 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>