I have following code: 

```
class BaseClass {
  constructor() {
    // BELOW LINE CALLS OVERRIDDEN FUNCTION BUT WITH `this` OF BaseClass
    this.preHook(); 
  }

  // THIS FUNCTION IS BEING OVERRIDDEN IN CHILD CLASS
  preHook(data) {
   return data;
  }
}

class ChildClass extends BaseClass {
   constructor() {
     super();
     this.someKey = 'someValueFromChild';
   }
   preHook(data) {
      console.log('this.someKey', this.someKey); //IT PRINTS undefined
   }
}

var c = new ChildClass();

OUTPUT:
this.someKey undefined

Expecting
this.someKey someValueFromChild

```

So in BaseClass's constructer i am calling a function `this.preHook()` which is getting overridden in ChildClass, when we initialise ChildClass it calls BaseClass's constructer and then it calls `this.preHook`'s overridden version , but instead of printing `someValueFromChild` which is defined in child class, it is printing undefined (it is using `this` of parent class instead of child`.

How can i make it to use `this` of child class.