web-dev-qa-db-ja.com

クラス内の関数の前の「get」キーワードとは何ですか?

このES6クラスでgetはどういう意味ですか?この関数を参照するにはどうすればよいですか?どのように使用すればよいですか?

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

これは、関数がプロパティのゲッターであることを意味します。

それを使用するには、他のプロパティと同じように名前を使用します。

'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

概要:

getキーワードは、オブジェクトプロパティを関数にバインドします。このプロパティが検索されると、ゲッター関数が呼び出されます。次に、getter関数の戻り値によって、返されるプロパティが決まります。

例:

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

OO JavaScriptのオブジェクトとクラスと同じです。MDNDocsの get から:

get構文は、オブジェクトプロパティを、そのプロパティが検索されたときに呼び出される関数にバインドします。