Expose a computed value with getter syntax.

getter-method A getter is called like a property but computes a value like a method. Keep getters simple so property reads stay predictable.

Getter Methods

level
getter_method.js
Replay: real traced execution (multi-file project)
const level = 2;
class UserRank {
  constructor(level) {
    this.level = level;
  }

  get label() {
    return "L" + this.level;
  }
}

const label = new UserRank(level).label;

console.log("level=" + level);
console.log("label=" + label);
const level = 5;
class UserRank {
  constructor(level) {
    this.level = level;
  }

  get label() {
    return "L" + this.level;
  }
}

const label = new UserRank(level).label;

console.log("level=" + level);
console.log("label=" + label);
const level = 9;
class UserRank {
  constructor(level) {
    this.level = level;
  }

  get label() {
    return "L" + this.level;
  }
}

const label = new UserRank(level).label;

console.log("level=" + level);
console.log("label=" + label);
  1. level ← 2, this.level ← 2, label ← L2

    1const level→ 2 = 2; //@level=5, 92class UserRank {3  constructor(level) {4    this.level = level2;5  }67  get label() {8    return "L" + this.level2;9  }10}1112const label→ L2 = new UserRank(level2).label;1314console.log("level=" + level2);15console.log("label=" + labelL2);
    outputlevel=2
    label=L2
  1. level ← 5, this.level ← 5, label ← L5

    1const level→ 5 = 5;2class UserRank {3  constructor(level) {4    this.level = level5;5  }67  get label() {8    return "L" + this.level5;9  }10}1112const label→ L5 = new UserRank(level5).label;1314console.log("level=" + level5);15console.log("label=" + labelL5);
    outputlevel=5
    label=L5
  1. level ← 9, this.level ← 9, label ← L9

    1const level→ 9 = 9;2class UserRank {3  constructor(level) {4    this.level = level9;5  }67  get label() {8    return "L" + this.level9;9  }10}1112const label→ L9 = new UserRank(level9).label;1314console.log("level=" + level9);15console.log("label=" + labelL9);
    outputlevel=9
    label=L9