类的基本知识

//创建一个Preson类
        class Person {
            //构造器方法
            constructor(name, age) {
                //构造器中的this是类的实例对象
                this.name = name;
                this.age = age;
            }
            //一般方法
            speak() {
                //speak方法放在了—— 类的原型对象上,是给实例用的
                //通过Person实例调用speak时,speak中的this就是Person实例
                console.log(`我叫${this.name},我的年龄是${this.age}`);
            }
        }


        //创建一个student类,继承Person类
        class Student extends Person {
            //继承Person,
            constructor(name, age, grade) {
                super(name, age);  //super必须放在最前面
                this.grade = grade;
                this.school = '中公';
            }
            speak() {
                //重写从父类继承的方法
                console.log(`我叫${this.name},我的年龄是${this.age},我读的是${this.grade}`);
            }
            study() {
                //study方法放在了—— 类的原型对象上,是给实例用的
                //通过Person实例调用studyk时,study中的this就是Student实例
                console.log('我很努力地学习');
            }
        }

注意:

1.类中的构造器不是必须要写的,要对实例进行一些初始化的操作,如添加指定属性时才写

2.如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的

3.类中定义的方法,都是放在原型对象上的,供实例区使用

 class Car {
            constructor(name, price,wheel) {
                this.name = name;
                this.price = price;
               // this.wheel = wheel;
            }
            //类中可以直接写赋值语句,如下代码的含义是给car的实例对象添加一个属性,名为a,值为1
            a = 1
            wheel = 4;
        }
        const c1 = new Car('奥迪', 199);
        console.log(c1);

实例对象和函数对象上的属性是不相通的,函数上的属性是属于函数对象的,并不属于实例对象,这样的属性成为静态成员

换到面向对象里面,静态属性属于类而不属于实例对象

实例对象的属性和构造函数原型对象上的属性是相通的

class Phone{
    //静态属性
    static name = '手机';
    }
let nokia = new Phone();
console.log(nokia.name);//undefined
console.log(Phone.name);//手机

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值