Create an instance and call a method on it.

class-instance A class describes objects with shared behavior. `new` creates an instance, and methods read the instance fields through `this`.

Class Instances

name
class_instance.js
Replay: real traced execution (multi-file project)
const name = "Ada";
class Badge {
  constructor(name) {
    this.name = name;
  }

  label() {
    return this.name + ":ok";
  }
}

const label = new Badge(name).label();

console.log("name=" + name);
console.log("label=" + label);
const name = "Bo";
class Badge {
  constructor(name) {
    this.name = name;
  }

  label() {
    return this.name + ":ok";
  }
}

const label = new Badge(name).label();

console.log("name=" + name);
console.log("label=" + label);
const name = "Cy";
class Badge {
  constructor(name) {
    this.name = name;
  }

  label() {
    return this.name + ":ok";
  }
}

const label = new Badge(name).label();

console.log("name=" + name);
console.log("label=" + label);
  1. name ← Ada, this.name ← Ada

    1const name→ Ada = "Ada"; //@name="Bo", "Cy"2class Badge {3  constructor(name) {4    this.name = nameAda;5  }67  label() {8    return this.name + ":ok";9  }10}1112const label = new Badge(nameAda).label();
    values this stepAdathis.name
  2. label ← Ada:ok

    9  }10}1112const label→ Ada:ok = new Badge(nameAda).label();1314console.log("name=" + nameAda);15console.log("label=" + labelAda:ok);
    outputname=Ada
    label=Ada:ok
  1. name ← Bo, this.name ← Bo

    1const name→ Bo = "Bo";2class Badge {3  constructor(name) {4    this.name = nameBo;5  }67  label() {8    return this.name + ":ok";9  }10}1112const label = new Badge(nameBo).label();
    values this stepBothis.name
  2. label ← Bo:ok

    9  }10}1112const label→ Bo:ok = new Badge(nameBo).label();1314console.log("name=" + nameBo);15console.log("label=" + labelBo:ok);
    outputname=Bo
    label=Bo:ok
  1. name ← Cy, this.name ← Cy

    1const name→ Cy = "Cy";2class Badge {3  constructor(name) {4    this.name = nameCy;5  }67  label() {8    return this.name + ":ok";9  }10}1112const label = new Badge(nameCy).label();
    values this stepCythis.name
  2. label ← Cy:ok

    9  }10}1112const label→ Cy:ok = new Badge(nameCy).label();1314console.log("name=" + nameCy);15console.log("label=" + labelCy:ok);
    outputname=Cy
    label=Cy:ok