web-dev-qa-db-fra.com

Quel est le mot clé "get" avant une fonction dans une classe?

Que signifie get dans cette classe ES6? Comment référencer cette fonction? Comment devrais-je l'utiliser?

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

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

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

Cela signifie que la fonction est un getter pour une propriété.

Pour l'utiliser, il suffit d'utiliser son nom comme n'importe quelle autre propriété:

'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);
87
Amit

Sommaire:

Le mot clé get liera une propriété d'objet à une fonction. Lorsque cette propriété est recherchée, la fonction d'accesseur en lecture est appelée. La valeur de retour de la fonction getter détermine ensuite quelle propriété est renvoyée.

Exemple:

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
21
Willem van der Veen

C'est un getter, identique aux objets et aux classes dans OO JavaScript. À partir des documents MDN pour get :

La syntaxe get lie une propriété d'objet à une fonction qui sera appelée lorsque cette propriété sera recherchée.