ES6 面向对象

Posted afanadmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 面向对象相关的知识,希望对你有一定的参考价值。

类的写法

{
    // ES6面向对象:
    // 类的写法:
    class Person{//typeof function类型
        age = 20;//属性也可以这样写 -> 这是公有属性,外内都可以调用;
        #hei = "178cm";//私有属性
        constructor(name){//-> function Person(name){}
            this.name = name;
        }
        fn(){// -> Person.prototype.fn = function(){}
            console.log("hello")
        }
        getAge(){
            console.log(this.age);
        }
        getHei(){
            console.log(this.#hei);
        }
    }

    let zhangsan = new Person("张三");
    console.log(zhangsan);
    zhangsan.getAge();//20
    zhangsan.getHei();//178cm 注意用法
    console.log(zhangsan.hei);//undefined
}

静态属性和静态方法

{
    class Person{
        static age = 10;//静态属性->1.属于类的属性;2.不需要实例化就可以调用
        static foo(){//静态方法
            console.log("foo")
        }
        constructor(name){
            this.name = name;
        }
    }

    console.log(Person.age);
    Person.foo();
}

继承

{
    // 继承
    class Dad{
        constructor(height){
            this.height = height;
        }
        foo(){
            console.log("foo");
        }
        setStyle(){
            console.log("父类一些逻辑")
        }
    }

    class Son extends Dad{//extends关键字
        constructor(height){
            super(height);//==调用了父类的构造函数-> 这里把构造函数和原型都进行继承过来了!
            // 注意参数传递
        }
        setStyle(){//可以 扩展逻辑 使用 super.父类();
            super.setStyle();//调用父类函数
            console.log("子类一些逻辑");
        }
    }

    let zhangsan = new Son("178cm");
    console.log(zhangsan);
    zhangsan.setStyle();
}

 

以上是关于ES6 面向对象的主要内容,如果未能解决你的问题,请参考以下文章

ES6面向对象的浅理解。

跟面向对象卯上了,看看ES6的“类”

重新认识JavaScript面向对象: 从ES5到ES6

js ES5面向对象继承 模仿ES6

JavaScript面向对象轻松入门之封装(demo by ES5ES6TypeScript)

ES6新增语法(四)——面向对象