原型中的this

原型中的this:

核心代码演示:

//父类
class People {
    constructor(name) {
        this.name = name
    }
    eat() {
        console.log(`${this.name} eat something`)
    }
}

//子类 继承父类 里面的方法可以直接调用,属性需要调用super去执行
class Student extends People {
    constructor(name,number) {
        //调用super,People会自动帮我们处理name
        super(name)
        //自己处理,学生才有自己的学号
        this.number = number
    }
    sayHi() {
        console.log(`姓名 ${this.name} 学号 ${this.number}`)
    }
}

//子类
class Teacher extends People {
    constructor(name,major) {
        super(name)
        this.major = major
    }
    teach() {
        console.log(`${this.name} 教授 ${this.major}`)
    }
}

//实例
const xialuo = new Student('夏洛', 100)
console.log(xialuo.name);
console.log(xialuo.number);
xialuo.sayHi();
xialuo.eat();

//实例
// const wanglaoshi = new Teacher('王老师','语文')
// console.log(wanglaoshi.name);
// console.log(wanglaoshi.major);
// wanglaoshi.teach();
// wanglaoshi.eat();

//class实际上是函数,可见是语法糖
// typeof People //'function'
// typeof Student//'function'

//隐式原型和显式原型
// console.log(xialuo.__proto__)
// console.log(Student.prototype)
// console.log(xialuo.__proto__ === Student.prototype)

//原型链
console.log(Student.prototype.__proto__)
console.log(People.prototype)
console.log(People.prototype === Student.prototype.__proto__)

效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43352901/article/details/107532530