Должен поймать их всех.
В недавнем разделе парного программирования Hack Reactor мне посчастливилось стать партнером многообещающей звезды Pokémon Go Хун Бэ.
Мы совместно работали над проектом, требующим от нас взять функциональный класс JavaScript и превратить его в псевдоклассическую реализацию. Нам также нужно было иметь три класса, делегирующих исходный класс. В нашем мастер-классе мы использовали событие наведения мыши, чтобы превратить все экземпляры различных танцевальных классов Пикачу в Пикачу, пойманного в покебол. Это дало нам самый интересный опыт обучения. Нам дали повод реализовать «это» по-новому. Ниже приведены соответствующие части кода, необходимые для нашего события наведения мыши.
var Dancer = function(x, y, z){
this.$node = $(‘<span class=”dancer”><img src=”assets/pikachucircleDancer_small.gif” id=”image”></span>’);
var that = this;
this.$node.mouseover(function() {
that.catch();
});
};
makeDancer.prototype.catch = function(){
this.$node.stop();
this.$node.children('img').attr("src", "assets/pokeball.gif");
};
Сохранение this как переменной «that» в одной области видимости позволило нам использовать «that» в новом контексте без какой-либо путаницы с контекстом, на который мы ссылались. Вывод для нас заключался в том, чтобы упростить использование этого, чтобы иметь возможность быстро «поймать» нашего Пикачу в покеболе при наведении курсора мыши.
Ссылка на пост Хун Бэ: