ES6新特性:class(类)的基本语法

简介: ES6新特性:class(类)的基本语法

说明


JavaScript 语言的传统方法是通过构造函数定义井生成新对象。


ES6中引入了class的概念,通过class关键字自定义类。


类的定义


可以通过constructor关键字进行声明构造函数


class User {
  //构造函数
  constructor(name, age = 20) {
    this.name = name; //添加属性并赋值
    this.age = age;
  }
}


也可以添加自定义方法,同样也能添加静态方法


class User {
  //构造函数
  constructor(name, age = 20) {
    this.name = name; //添加属性并赋值
    this.age = age;
  }
  //自定义方法
  sayhi = () => {
    return "hello";
  }
  //静态方法
  static isAdult(age) {
    if (age < 18) {
      return "我是未成年人";
    }
    return "我是成年人";
  }
}


我们对上面类进行对象的创建与打印当前对象


// 测试
let user = new User("张三", 21);
console.log(user);      // 输出: {name: "张三", age: 20}
// 自定义方法的使用
console.log(user.sayhi());  // 输出: hello
// 静态方法的使用
console.log(User.isAdult(17));  // 输出: 我是未成年人



类继承


在ES6中的类也能实现继承


例如我们对上面的User进行继承


class Lisi extends User {
  constructor() {
    super("张三", 30); //如果父类中的构造方法有参数,那么子类必须通过super调用父类的构造方法
    this.address = "上海"; //设置子类中的属性,位置必须处于super下面
  }
}


我们对上面的继承类进行对象的创建与打印当前对象


let person2 = new Lisi(); //
console.log(person2.name, person2.address); // 输出:张三 上海
console.log(person2.sayhi()); //调用父类中的方法 ,输出: hello    
console.log(Lisi.isAdult(20));//调用父类的静态方法 , 输出: 成年人



代码案例


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>ES6新特性学习-(12)-class (类)的基本语法</title>
  </head>
  <body>
    <h2>
      JavaScript 语言的传统方法是通过构造函数定义井生成新对象。 ES6中引入了class的概念,通过class关键字自定义类。
    </h2>
    <script>
      class User {
        //构造函数
        constructor(name, age = 20) {
          this.name = name; //添加属性并赋值
          this.age = age;
        }
        //自定义方法
        sayhi = () => {
          return "hello";
        }
        //静态方法
        static isAdult(age) {
          if (age < 18) {
            return "我是未成年人";
          }
          return "我是成年人";
        }
      }
      // 测试
      let user = new User("张三", 21);
      console.log(user);      // 输出: {name: "张三", age: 20}
      // 自定义方法的使用
      console.log(user.sayhi());  // 输出: hello
      // 静态方法的使用
      console.log(User.isAdult(17));  // 输出: 我是未成年人
      // 类继承
      class Lisi extends User {
        constructor() {
          super("张三", 30); //如果父类中的构造方法有参数,那么子类必须通过super调 用父类的构造方法
          this.address = "上海"; //设置子类中的属性,位置必须处于super下面
        }
      }
      // 测试
      let person2 = new Lisi(); //
      console.log(person2.name, person2.address); //
      console.log(person2.sayhi()); //调用父类中的方法 ,输出: hello    
      console.log(Lisi.isAdult(20));//调用父类的静态方法 , 输出: 成年人
    </script>
  </body>
</html>
相关文章
|
1月前
|
安全
ES5/ES6 的继承除了写法以外还有什么区别
ES5 和 ES6 的继承主要区别在于实现机制和语法糖。ES5 通过原型链和构造函数模拟类的继承,而 ES6 引入了 class 关键字,使继承更加直观和简洁,支持 super 调用父类方法,提升了代码可读性和维护性。
|
3月前
|
对象存储 Python
Python代码解读-理解-定义一个User类的基本写法
以上描述清晰地阐述了如何在Python中定义 `User`类的基本方法以及如何创建和使用该类的实例。这是面向对象编程中的核心概念,是紧密结合抽象和实现,封装数据并提供操作数据的接口。由于用简单通用的语言易于理解,这样的解释对于初学者而言应该是友好且有帮助的。
41 4
|
3月前
|
JavaScript 前端开发 Java
ES6新特性(六):类
ES6新特性(六):类
|
11月前
ES6学习(十一)—Class 的基本语法和继承
ES6学习(十一)—Class 的基本语法和继承
|
JavaScript 前端开发 程序员
TypeScript--类(class)
TypeScript--类(class)
ES5 / ES6 的继承除了写法以外还有什么区别
ES5 / ES6 的继承除了写法以外还有什么区别
101 0
|
前端开发
es6 语法简单使用2
es6 语法简单使用
64 0
|
网络架构
es6 语法简单使用1
es6 语法简单使用
74 0
|
IDE 程序员 开发工具
​Python 3 新特性:类型注解
我们知道 Python 是一种动态语言,变量以及函数的参数是不区分类型。
ES6 class使用方法
ES6 class使用方法
68 0
下一篇
无影云桌面