I am having two classes and want to have an Object with values that are available for both classes. This is my sample code:
class Class1 {
constructor() {
this.things = [];
this.testValue = "one two three";
}
doThings() {
for(let i = 0; i < 10; i++) {
this.things[i] = "test "+i;
}
console.log("Class 1 doThings(): ", this.things);
}
getContent() {
console.log("getContent Class1: ", this.things);
}
}
class Class2 extends Class1 {
constructor(elmnt){
super();
}
getContent() {
console.log("Class 2 getContent(): ", this.things);
}
getValue() {
console.log("Value: ", this.testValue)
}
}
let handle1 = new Class1();
let handle2 = new Class2();
handle1.getContent(); // empty because this.things() did not run
handle1.doThings(); // create things...
handle1.getContent(); // this shows the things
handle2.getContent(); // this is empty even is doThings() is called before to produce things...
handle2.getValue();
Why is handle2.getContent() not showing the Things-Array? And (more important) what would be right?
i think the super() overrides the this.things… Is that true? how could i prevent this?