类基本用法

一、类的作用:可以创建对象、可以实现对象的继承

二、类与对象的关系:类是对象的模板、对象是类的实例化

三、类的创建流程

   /*
      1、创建类 class 类名 {} 类名的首字母要大写 
     */
    class Animal {
        // 2、构造方法:任何一个类都有一个构造器(构造方法),它是默认的。构造方法中的this指向实例化对象
        constructor(name, age) {
            this.name = name;
            this.age = age;
            this.eat = function() {
                console.log(`${this.name}会吃饭!`);
            }
        };
        // 4、自定义方法:通过实例化对象进行调用,this指向实例化对象
        getName() {
            console.log(`${this.name}`);
        }
        setName(name) {
            this.name = name;
        };
        // 5、静态方法:通过类进行调用,this指向当前的类,this.name就是类名
        static sleep() {
            console.log("我是一个静态方法");
            console.log(this);
            console.log(this.name);
        }
    }
    // 3、实例化对象
    let dog = new Animal("小狗", 3);
    console.log(dog);
    console.log(dog.name);
    console.log(dog.age);
    dog.eat();
    let cat = new Animal("小猫", 4);
    console.log(cat);
    console.log(cat instanceof Object);
    console.log(cat.__proto__);
    // 
    // Animal.getName();
    dog.getName();
    dog.setName("Doggo是真狗");
    dog.getName(); //
    // 
    // dog.sleep();
    Animal.sleep();

四、类的继承  class 子类 extends 父类 {}

class Dog extends Animal {
        constructor(name, age, sex) {
            /*  this.name = name;
             this.age = age; */
            super(name, age);
            this.sex = sex;
            this.playGame = function() {
                console.log(`${this.name}`);
            }
        }
    }
    let hsq = new Dog("哈士奇", 1, "公的");
    console.log(hsq);
    console.log(hsq.name);
    console.log(hsq.age);
    hsq.eat();
    console.log(hsq.sex);
    hsq.playGame();
    hsq.getName();
    hsq.setName("金毛");
    hsq.getName();
    Dog.sleep();

使用super有几个要注意的事项:

子类必须在constructor方法中调用super方法

调用super( ),才可以使用this,否则报错

    以上就是关于类继承的介绍,重点在于关键字extendssuper,尤其是super的理解和使用,大家需要理解透彻。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 中,`class` 是一种创建对象的模板或蓝图,用于定义对象的属性和方法。以下是 `class` 基本用法: 1. 定义: ```javascript class MyClass { constructor() { // 构造函数,用于初始化对象实例 } method1() { // 定义的方法 } method2() { // 定义另一个的方法 } } ``` 使用 `class` 关键字定义一个,并在内部定义构造函数和其他方法。构造函数使用 `constructor` 关键字定义,用于初始化对象实例。其他方法则直接在内部定义,不需要使用关键字。 2. 创建对象实例: ```javascript const myObj = new MyClass(); ``` 使用 `new` 关键字和名来创建对象实例。可以像调用普通函数一样调用来创建新的对象。 3. 调用对象方法: ```javascript myObj.method1(); myObj.method2(); ``` 通过对象实例使用点 `.` 语法调用中定义的方法。 4. 的继承: ```javascript class ChildClass extends ParentClass { constructor() { super(); // 子构造函数的初始化 } childMethod() { // 子独有的方法 } } ``` 使用 `extends` 关键字实现的继承。子可以继承父的属性和方法,并添加自己特有的属性和方法。在子的构造函数中,需要使用 `super()` 调用父的构造函数。 这些是 `class` 基本用法。通过定义,可以创建多个对象实例,并共享的属性和方法。还允许使用继承机制,实现的层次结构和代码重用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值