Im trying to get this function "this.kill()" to work. But when i call it i get this error: "TypeError: this.kill is not a function" and i cant figure out a way to solve it.
html:
<div class="message success" id="alert"></div>
Baseclass:
export class BaseMessage {
constructor(protected element:HTMLElement, protected message:string) {
this.init();
}
init():void {
this.setText(this.message);
this.addListeners();
}
kill():void {
this.removeListeners();
}
setText(message:string):void {
this.element.textContent = message;
}
addListeners():void {
this.element.addEventListener('click',this.onClick);
}
removeListeners():void {
this.element.removeEventListener('click',this.onClick);
}
onClick():void {
this.kill();
//its this that causes the error
}
}
Message class
import { BaseMessage } from './basemessage';
export class Message extends BaseMessage {
constructor(element:HTMLElement, message:string) {
super(element, message);
}
}
Main
import { Message } from './components/message';
const mess = document.getElementById('alert');
const message = new Message(mess,'Tack, tack!');