个性化阅读
专注于IT技术分析

JavaScript的OOPS类

本文概要

在JavaScript中,类是特殊类型的功能。我们可以定义类就像函数声明和函数表达式。

该JavaScript类包含包括方法或构造函数体内各类成员。类在严格模式下执行。因此,含有沉默误差或错误的代码抛出一个错误。

类的语法包含两个组件:

  • 类声明
  • 类表达式

类声明

一类可以使用的类声明中定义。一类关键字被用于声明类与任何特定的名称。据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
赞(0)
未经允许不得转载:srcmini » JavaScript的OOPS类

评论 抢沙发

评论前必须登录!