According to Wikipedia: In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
A class in Javascript is a special type of function that contains various class members including methods or constructors.
A class in JavaScript can be defined in the following ways:
- Class declarations
- Class expressions
JavaScript Class Declarations
Declaring a class means defining a class using the name of the class. The name of the class always starts with an uppercase letter.
Syntax:
class className
class TestClass {
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}
JavaScript Class Declarations Example:
<!DOCTYPE html>
<html>
<body>
<script>
class Student
{
constructor(id,name)
{
this.id=id;
this.name=name;
}
detail()
{
document.writeln(this.id+" "+this.name+"<br>")
}
}
var s1=new Student(1,"Diana Rey");
var s2=new Student(2,"Tagore William");
s1.detail();
s2.detail();
</script>
</body>
</html>
Note: A class can not be re-defined by declaring an approach. i.e. We can not re-declare a class. The following code will give a throwing error.
<!DOCTYPE html>
<html>
<body>
<script>
class Student
{
constructor(id,name)
{
this.id=id;
this.name=name;
}
detail()
{
document.writeln(this.id+" "+this.name+"<br>")
}
}
class Student
{
}
var s1=new Student(1,"Diana Rey");
var s2=new Student(2,"Tagore William");
s1.detail();
s2.detail();
</script>
</body>
</html>
JavaScript Class expressions
Class expressions means defining a class using a class expression. The name of the class is not mandatory in this case.
Syntax:
var variableName = class
JavaScript Unnamed Class Expression Example:
<!DOCTYPE html>
<html>
<body>
<script>
var student = class {
constructor(id,name)
{
this.id=id;
this.name=name;
}
}
document.writeln(student.name);
</script>
</body>
</html>
JavaScript Class Expression Example:
<!DOCTYPE html>
<html>
<body>
<script>
var student=class
{
constructor(id,name)
{
this.id=id;
this.name=name;
}
showDetail()
{
document.writeln(this.id+" "+this.name+"<br>")
}
}
var stu1=new student(1,"Pooja Dagar");
var stu2=new student(2,"Rupali Sharma");
stu1.showDetail();
stu2.showDetail();
</script>
</body>
</html>
Note: We can redefine a class-by-expression approach. i.e. We can re-declare a class. The following code will execute successfully.
<!DOCTYPE html>
<html>
<body>
<script>
var student=class
{
constructor(id,name)
{
this.id=id;
this.name=name;
}
showDetail()
{
document.writeln(this.id+" "+this.name+"<br>")
}
}
var stu1=new student(1,"Pooja Dagar");
var stu2=new student(2,"Rupali Sharma");
stu1.showDetail();
stu2.showDetail();
//Re define the student class
var student=class
{
constructor(id,name)
{
this.id=id;
this.name=name;
}
showDetail()
{
document.writeln(this.id+" "+this.name+"<br>")
}
}
var stu1=new student(1,"Shivanshu");
var stu2=new student(2,"Navdeep");
stu1.showDetail();
stu2.showDetail();
</script>
</body>
</html>