Course Content
Object-Oriented Programming in JavaScript
Object-Oriented Programming in JavaScript
Static Attributes
As you already know, each object can have a unique attribute value, like, for example, studentA
has name Andrew
and studentB
has name William
. But sometimes it makes sense to set some static value - the common for all instances of the class.
Let's add a attribute called ageOfMajority
. Obviously, the value is 18 for all Students’ objects, and can't be different for different students. We’ll add a static keyword.
class Student{ name; age; static ageOfMajority = 18 constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } } student = new Student('Robert', 22); console.log(Student.ageOfMajority);
To refer to the static attribute, use the name of the class, not the object, because it is a property of the class.
Inside non-static functions, you can refer static attribute only using class name, not this
keyword. Look how we refer non-static age
and static ageOfMajority
in method drink()
:
class Student{ name; age; static ageOfMajority = 18; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } drink(){ if (this.age < Student.ageOfMajority){ console.log('I am too young, only', this.age, 'yrs old.'); } else { console.log('I am drunk.'); } } } student = new Student('Robert', 22); student.drink();
Task
Let's create function interview()
, which assigns a student to the class A, if GPA >= 3.0, or class B if not. For this, define static attribute gpaLimit
and assign it with 3.0, and inside interview()
function compare it with student's GPA. Print message Assigned to the class A
or Assigned to the class B
.
Thanks for your feedback!
Static Attributes
As you already know, each object can have a unique attribute value, like, for example, studentA
has name Andrew
and studentB
has name William
. But sometimes it makes sense to set some static value - the common for all instances of the class.
Let's add a attribute called ageOfMajority
. Obviously, the value is 18 for all Students’ objects, and can't be different for different students. We’ll add a static keyword.
class Student{ name; age; static ageOfMajority = 18 constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } } student = new Student('Robert', 22); console.log(Student.ageOfMajority);
To refer to the static attribute, use the name of the class, not the object, because it is a property of the class.
Inside non-static functions, you can refer static attribute only using class name, not this
keyword. Look how we refer non-static age
and static ageOfMajority
in method drink()
:
class Student{ name; age; static ageOfMajority = 18; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } drink(){ if (this.age < Student.ageOfMajority){ console.log('I am too young, only', this.age, 'yrs old.'); } else { console.log('I am drunk.'); } } } student = new Student('Robert', 22); student.drink();
Task
Let's create function interview()
, which assigns a student to the class A, if GPA >= 3.0, or class B if not. For this, define static attribute gpaLimit
and assign it with 3.0, and inside interview()
function compare it with student's GPA. Print message Assigned to the class A
or Assigned to the class B
.
Thanks for your feedback!
Static Attributes
As you already know, each object can have a unique attribute value, like, for example, studentA
has name Andrew
and studentB
has name William
. But sometimes it makes sense to set some static value - the common for all instances of the class.
Let's add a attribute called ageOfMajority
. Obviously, the value is 18 for all Students’ objects, and can't be different for different students. We’ll add a static keyword.
class Student{ name; age; static ageOfMajority = 18 constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } } student = new Student('Robert', 22); console.log(Student.ageOfMajority);
To refer to the static attribute, use the name of the class, not the object, because it is a property of the class.
Inside non-static functions, you can refer static attribute only using class name, not this
keyword. Look how we refer non-static age
and static ageOfMajority
in method drink()
:
class Student{ name; age; static ageOfMajority = 18; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } drink(){ if (this.age < Student.ageOfMajority){ console.log('I am too young, only', this.age, 'yrs old.'); } else { console.log('I am drunk.'); } } } student = new Student('Robert', 22); student.drink();
Task
Let's create function interview()
, which assigns a student to the class A, if GPA >= 3.0, or class B if not. For this, define static attribute gpaLimit
and assign it with 3.0, and inside interview()
function compare it with student's GPA. Print message Assigned to the class A
or Assigned to the class B
.
Thanks for your feedback!
As you already know, each object can have a unique attribute value, like, for example, studentA
has name Andrew
and studentB
has name William
. But sometimes it makes sense to set some static value - the common for all instances of the class.
Let's add a attribute called ageOfMajority
. Obviously, the value is 18 for all Students’ objects, and can't be different for different students. We’ll add a static keyword.
class Student{ name; age; static ageOfMajority = 18 constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } } student = new Student('Robert', 22); console.log(Student.ageOfMajority);
To refer to the static attribute, use the name of the class, not the object, because it is a property of the class.
Inside non-static functions, you can refer static attribute only using class name, not this
keyword. Look how we refer non-static age
and static ageOfMajority
in method drink()
:
class Student{ name; age; static ageOfMajority = 18; constructor(name, age){ this.name = name; this.age = age; console.log('Student created'); } drink(){ if (this.age < Student.ageOfMajority){ console.log('I am too young, only', this.age, 'yrs old.'); } else { console.log('I am drunk.'); } } } student = new Student('Robert', 22); student.drink();
Task
Let's create function interview()
, which assigns a student to the class A, if GPA >= 3.0, or class B if not. For this, define static attribute gpaLimit
and assign it with 3.0, and inside interview()
function compare it with student's GPA. Print message Assigned to the class A
or Assigned to the class B
.