Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Static Functions | Static
Object-Oriented Programming in JavaScript

Stryg for at vise menuen

book
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.

123456789101112131415161718192021222324
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);
copy

To call this method, you also have to use the name of the class, not the object:

1
Student.compare(studentA, studentB);
copy

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.

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

book
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.

123456789101112131415161718192021222324
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);
copy

To call this method, you also have to use the name of the class, not the object:

1
Student.compare(studentA, studentB);
copy

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.

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt