ECMAScript 2015
ES6, also known as ECMAScript2015, introduced classes.
Class Definition
Use the keyword class to create a class, and always add the constructor() method.
The constructor method is called each time the class object is initialized.
Example A simple class definition for a class named "Car":
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return "I have a " + this.carname;
}
}
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
}
mycar = new Car("Ford");
document.getElementById("demo").innerHTML = mycar.carname;
</script>
Static Methods
Static methods are defined on the class itself, and not on the prototype.
That means you cannot call a static method on the object (mycar), but on the class (Car):
Example(1)
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
static hello() {
return "Hello!!";
}
}
mycar = new Car("Ford");
//Call 'hello()' on the class Car:
document.getElementById("demo1").innerHTML = Car.hello();
//and NOT on the 'mycar' object:
//document.getElementById("demo").innerHTML = mycar.hello();
//this would raise an error.
</script>
If you want to use the mycar object inside the static method, you can send it as a parameter:
Example(2)
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
static hello(x) {
return "Hello " + x.carname;
}
}
mycar = new Car("Ford");
document.getElementById("demo").innerHTML = Car.hello(mycar);
</script>
Complete Code For Creating Static Methods In Class Using JavaScript
<!DOCTYPE html>
<html>
<head>
<title>How To Create Static Methods In Class Using JavaScript</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br>
<div class="text-center">
<h1 id="color" style="color: tomato">How To Create Static Methods In Class Using JavaScript</h1>
</div>
<div class="well">
<h2 id="demo1"></h2>
<h2 id="demo2"></h2>
<h2 id="demo3"></h2>
<script>
class Car {
constructor(brand) {
this.carname = brand;
}
static hello() {
return "Hello!!";
}
}
mycar = new Car("Ford");
//Call 'hello()' on the class Car:
document.getElementById("demo1").innerHTML = Car.hello();
//and NOT on the 'mycar' object:
//document.getElementById("demo").innerHTML = mycar.hello();
//this would raise an error.
document.getElementById("demo2").innerHTML = Car.hello(mycar);
</script>
</div>
</div>
</body>
</html>