在类中的函数之前,“get”关键字是什么?

时间:2015-08-13 22:09:16

标签: javascript methods getter

这个ES6课程中get的含义是什么?我该如何参考这个功能?我应该如何使用它?

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

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

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

4 个答案:

答案 0 :(得分:76)

这意味着该函数是属性的getter。

要使用它,只需像使用其他任何属性一样使用它的名称:



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




答案 1 :(得分:17)

摘要:

get关键字会将对象属性绑定到函数。现在,当查询此属性时,将调用getter函数。然后,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

答案 2 :(得分:16)

它是getter,与OO JavaScript中的Objects和Classes相同。来自get的MDN文档:

  

get语法将对象属性绑定到将在查找该属性时调用的函数。

答案 3 :(得分:1)

或更简单的方法是,只需键入函数名称就可以调用函数而无需用户“()”

以上两个函数对person.fullName()和person.fullName的关注度相同

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

}

console.log(person.fullName());

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

}

console.log(person.fullName);