Classes and Methods
Class Instances
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
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);
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.namelabel ← 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
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.namelabel ← 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
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.namelabel ← 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