菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育

标题: 前端-王卓凡-20230529 [打印本页]

作者: 王卓凡    时间: 2023-6-13 18:14
标题: 前端-王卓凡-20230529
ES6中的类
类没有变量提升,必须先定义,再实例化。
类里面共有的属性和方法一定要加this。
//创建类
class Person {
    constructor(uname, uage) {
        this.uname = uname
        this.uage = uage
    }
}
//实例对象
let p1 = new Person('zs', 20)
console.log(p1)
let p2 = new Person('ls', 30)
console.log(p2)
//方法的添加
class User {
    constructor(pws, username) {
        this.pws = pws
        this.username = username
    }
    login() {
        console.log('login')
    }
}
let u1 = new User('1234', '长在红旗下')
console.log(u1)
u1.login()
let u2 = new User('668899', '生在春风里')
console.log(u2)
u2.login()
console.log(u1.login === u2.login) //true//静态方法添加
class User {
    constructor(pws, username) {
        this.pws = pws
        this.username = username
    }
    login() {
        console.log('login')
    }
    // 静态方法
    static register() {
        console.log('register')
    }
}
User.register()
let u1 = new User('1234', '长在红旗下')
u1.register() //报错//继承
class Person {
    constructor(uname, uage) {
        this.uname = uname
        this.uage = uage
    }
    say() {
        console.log(this.uname)
    }
}

class Student extends Person {
    constructor(uname, uage) {
        super(uname, uage) //调用父类的构造函数
    }
}
const s1 = new Student('zs', 18)
console.log(s1)
s1.say()class Person {
    constructor(uname, uage) {
        this.uname = uname
        this.uage = uage
    }
    say() {
        console.log(this.uname)
    }
}

class Student extends Person {
    constructor(uname, uage) {
        super(uname, uage)
    }

    // 添加自己的say方法
    say() {
        // 也可以实现调用父类中say
        super.say()
        console.log(this.uage)
    }
}
const s1 = new Student('zs', 18)
console.log(s1)
s1.say() //优先使用本身的方法class Father {
    constructor(a, b) {
        this.a = a
        this.b = b
    }
    getAdd() {
        console.log(this.a + this.b)
    }
}
class Son extends Father {
    constructor(a, b) {
        super(a, b)
    }
}
const s1 = new Son(1, 2)
s1.getAdd()class Person {
    constructor(uname, uage) {
        this.uname = uname
        this.uage = uage
    }
    sayName() {
        console.log(this.uname)
    }
}


class Student extends Person {
    constructor(uname, uage) {
        super(uname) //必须写在this的前面

        this.uname = uname
        this.uage = uage
    }
    sayAge() {
        console.log(this.uage)
    }
}

const s = new Student('zs', 16)
s.sayAge() //16
s.sayName() //zs,继承父类的方法





欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) Powered by Discuz! X3.4