Course Content
Object-Oriented Programming in JavaScript
Object-Oriented Programming in JavaScript
Static Functions
Methods also can be static. Let’s create compare()
method with two parameters: studentA
and studentB
. This function will output which student has a higher GPA.
class Student{ name; age; static ageOfMajority = 18; university; gpa; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } static compare(studentA, studentB) { if (studentA.gpa > studentB.gpa) { console.log('First student has higher GPA.') } else if (studentA.gpa < studentB.gpa) { console.log('Second student has higher GPA.') } else { console.log('GPAs are equal.') } } } rob = new Student('Robert', 22); rob.gpa = 3.4; steve = new Student('Steve', 19); steve.gpa = 2.9 Student.compare(rob, steve);
To call this method, you also have to use the name of the class, not the object:
Student.compare(studentA, studentB);
Inside the static method, you can refer only to static class attributes, using this
keyword, because non-static attributes are unique for each object, so for the whole class, they are undefined.
Note that in function compare()
you refer to the non-static objects attributes studentA
and studentB
, but to the static class attributes Student
.
Thanks for your feedback!
Static Functions
Methods also can be static. Let’s create compare()
method with two parameters: studentA
and studentB
. This function will output which student has a higher GPA.
class Student{ name; age; static ageOfMajority = 18; university; gpa; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } static compare(studentA, studentB) { if (studentA.gpa > studentB.gpa) { console.log('First student has higher GPA.') } else if (studentA.gpa < studentB.gpa) { console.log('Second student has higher GPA.') } else { console.log('GPAs are equal.') } } } rob = new Student('Robert', 22); rob.gpa = 3.4; steve = new Student('Steve', 19); steve.gpa = 2.9 Student.compare(rob, steve);
To call this method, you also have to use the name of the class, not the object:
Student.compare(studentA, studentB);
Inside the static method, you can refer only to static class attributes, using this
keyword, because non-static attributes are unique for each object, so for the whole class, they are undefined.
Note that in function compare()
you refer to the non-static objects attributes studentA
and studentB
, but to the static class attributes Student
.
Thanks for your feedback!