Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the "get" keyword before a function in a class?

It means the function is a getter for a property.

To use it, just use it's name as you would any other property:

'use strict'
class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  get area() {
    return this.calcArea()
  }

  calcArea() {
    return this.height * this.width;
  }
}

var p = new Polygon(10, 20);

alert(p.area);

Summary:

The get keyword will bind an object property to a function. When this property is looked up now the getter function is called. The return value of the getter function then determines which property is returned.

Example:

const person = {
    firstName: 'Willem',
    lastName: 'Veen',
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    }

}

console.log(person.fullName);
// When the fullname property gets looked up
// the getter function gets executed and its
// returned value will be the value of fullname

It is getter, same as Objects and Classes in OO JavaScript. From the MDN Docs for get:

The get syntax binds an object property to a function that will be called when that property is looked up.