JavaScript的OOPS类

本文概要

  • 类声明
  • 类表达式
在JavaScript中,类是特殊类型的功能。我们可以定义类就像函数声明和函数表达式。
该JavaScript类包含包括方法或构造函数体内各类成员。类在严格模式下执行。因此,含有沉默误差或错误的代码抛出一个错误。
类的语法包含两个组件:
  • 类声明
  • 类表达式
类声明【JavaScript的OOPS类】一类可以使用的类声明中定义。一类关键字被用于声明类与任何特定的名称。据JavaScript的命名约定,类名总是以大写字母开头。
类声明例
让我们来看看声明类的简单例子。
< script> //Declaring class class Employee { //Initializing an object constructor(id,name) { this.id=id; this.name=name; } //Declaring method detail() { document.writeln(this.id+" "+this.name+"< br>") } } //passing object to a variable var e1=new Employee(101,"Martin Roy"); var e2=new Employee(102,"Duke William"); e1.detail(); //calling method e2.detail(); < /script>

输出:
101 Martin Roy 102 Duke William

类声明例:提升
与函数声明,类声明JavaScript不提升的一部分。因此,就需要调用它之前声明的类。
让我们来看一个例子。
< script> //Here,we are invoking the class before declaring it. var e1=new Employee(101,"Martin Roy"); var e2=new Employee(102,"Duke William"); e1.detail(); //calling method e2.detail(); //Declaring class class Employee { //Initializing an object constructor(id,name) { this.id=id; this.name=name; } detail() { document.writeln(this.id+" "+this.name+"< br>") } } < /script>

输出:
类声明实施例:重新声明类
一个类可以一次只标示。如果我们尝试声明类不止一个时,它抛出一个错误。
让我们来看一个例子。
< script> //Declaring class class Employee { //Initializing an object constructor(id,name) { this.id=id; this.name=name; } detail() { document.writeln(this.id+" "+this.name+"< br>") } } //passing object to a variable var e1=new Employee(101,"Martin Roy"); var e2=new Employee(102,"Duke William"); e1.detail(); //calling method e2.detail(); //Re-declaring class class Employee { } < /script>

输出:
类表达式定义一个类的另一种方法是通过使用一个类的表达。在这里,它不是强制性的分配类的名称。所以,该类表达式可以有名或无名的。该类表达使我们能够获取的类名。然而,这不会是可能的类声明。
无名类表达式
这个类可以不给它分配任何名称来表示。
让我们来看一个例子。
< script> var emp = class { constructor(id,name) { this.id = id; this.name = name; } }; document.writeln(emp.name); < /script>

输出:
emp

类表达实施例:重新声明类
不同类的声明,类表情让我们重新申报同一类。所以,如果我们试图将类声明超过一次,它抛出一个错误。
< script> //Declaring class var emp=class { //Initializing an object constructor(id,name) { this.id=id; this.name=name; } //Declaring method detail() { document.writeln(this.id+" "+this.name+"< br>") } } //passing object to a variable var e1=new emp(101,"Martin Roy"); var e2=new emp(102,"Duke William"); e1.detail(); //calling method e2.detail(); //Re-declaring class var emp=class { //Initializing an object constructor(id,name) { this.id=id; this.name=name; } detail() { document.writeln(this.id+" "+this.name+"< br>") } } //passing object to a variable var e1=new emp(103,"James Bella"); var e2=new emp(104,"Nick Johnson"); e1.detail(); //calling method e2.detail(); < /script>

输出:
101 Martin Roy 102 Duke William 103 James Bella 104 Nick Johnson

命名的类的表达实施例
我们可以表达对特定名称的类。在这里,类名的范围是到类主体。该类使用class.name属性检索。
< script> var emp = class Employee { constructor(id,name) { this.id = id; this.name = name; } }; document.writeln(emp.name); /*document.writeln(Employee.name); Error occurs on console: "ReferenceError: Employee is not defined */ < /script>

输出:
Employee

    推荐阅读