2-5、说说原型和原型链是怎么回事

61 阅读1分钟

什么是原型

image.png

什么是原型链

image.png

首先要声明类,再实例化

 // 声明类
    class Person {
        // 每个类必须要有constructor
        constructor(name, age) {
            this.name = name;
            this.age = age;
        }

        sayHello() {
            console.log(`您好${this.name}`);
        }
    }

    // 实例化
    let zhangsan = new Person("zhangsan", 18);
    console.log(zhangsan.name);
    console.log(zhangsan.age);
    zhangsan.sayHello();

关于子类的继承

<script>
    // 声明类
    class Person {
        // 必须要有constructor
        constructor(name, age) {
            this.name = name;
            this.age = age;
        }

        sayHello() {
            console.log(`您好${this.name}`);
        }
    }
    // 子类 继承
    class Student extends Person {
        constructor(name, age, sex) {
            super(name, age);

            this.sex = sex;
        }

        learn() {
            console.log(
                `我是${this.name},今年${this.age},是${this.sex}的,在学习英语`
            );
        }
    }

    // 实例化
    const zhangsan = new Student('张三', 18, '男');
    zhangsan.sayHello();
    zhangsan.learn();
</script>

显式原型和隐式原型

    console.log(zhangsan.__proto__); // 隐式原型
    console.log(Student.prototype); // 显式原型
    console.log(zhangsan.__proto__ === Student.prototype);