@sergeyviktorovich

Как на событие клика вызвать функцию в контексте прототипа?

можно ли  var self = this; заменить передачей контекста через bind к примеру?

function PoemButton (buttonCaption, buttonAlert) {
    this.buttonCaption = buttonCaption;
    this.buttonAlert = buttonAlert;
   
    }

PoemButton.prototype = {
    created: function(){
       var self = this;
        var btn = document.createElement('button');
        btn.innerText = this.buttonCaption;
        document.querySelector("body").appendChild(btn);
        btn.onclick = function () {

/*как тут не импользовать  self ,а передать контекст  ? */
            self.alerttext();
        }
    },
    alerttext: function(){
        alert(this.buttonAlert);
    }
    
}
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
@sergeyviktorovich Автор вопроса
поправил так ,но думаю это не самый короткий вариант записи
function clickbtn () {
            this.alerttext();
        }
 btn.onclick = clickbtn.bind(this);

еще так попробовал
btn.onclick = this.alerttext.bind(this);
но вот тае не получится тогда

alerttext: function(){
        this.style.backgroundColor='green';
        alert(this.buttonAlert);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы