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

What does get mean in this ES6 class? How do I reference this function? How should I use it?

class Polygon { constructor(height, width) { this.height = height; this.width = width; } get area() { return this.calcArea() } calcArea() { return this.height * this.width; }
}
4

3 Answers

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);
6

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
2

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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like