我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

前端-王卓凡-20230529

[复制链接]
王卓凡 发表于 2023-6-13 18:14:00 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
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,继承父类的方法
回复

使用道具 举报

关注0

粉丝0

帖子47

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026