можно ли как-то у унаследованного класса расширить метод его прототипа

Есть класс Blog со следующем методом

createEventListener() {

    this.$searchLink.addEventListener('click', this.search.bind(this));
    this.$searchText.addEventListener('keydown', e => {
        if ( e.keyCode == 13 ) this.$searchLink.click();
    })
}

И есть класс AdminBlog(подкласс) от Blog, у него также есть метод createEventListener.

Мне нужно чтобы вызывался свой метод и прототипа. Можно ли так сделать или всё таки переименовать метод


Ответы (1 шт):

Автор решения: Yugofx

Попробуйте вызвать метод прототипа с установленным контекстом

createEventListener() {
    Blog.prototype.createEventListener.call(this);

    this.$searchLink.addEventListener('click', this.search.bind(this));
    this.$searchText.addEventListener('keydown', e => {
        if ( e.keyCode == 13 ) this.$searchLink.click();
    });
}

В ES6 все гораздо проще.

createEventListener() {
    super.createEventListener();

    this.$searchLink.addEventListener('click', this.search.bind(this));
    this.$searchText.addEventListener('keydown', e => {
        if ( e.keyCode == 13 ) this.$searchLink.click();
    });
}
→ Ссылка