Перавага this у JavaScript

З сказанага раней пакуль не відавочна асаблівая перавага this. Аднуль ўнутры функцыі-апрацоўшчыка і так будзе даступны наш элемент - аднуль пераменная elem будзе глабальнай для нашай функцыі func:

javascriptlet elem = document.querySelector('#elem');
elem.addEventListener('click', func);

function func() {
  // тут даступная пераменная elem з нашым элементам
}

І, няцяжка здагадацца, што змесціва this і змесціва пераменнай elem у нашым выпадку роўныя:

javascriptlet elem = document.querySelector('#elem');
elem.addEventListener('click', func);

function func() {
  console.log(elem === this); // выведе true
}

У чым жа асаблівая перавага this? Яна праяўляецца, калі ў нас некалькі элементаў, і да кожнага прывязана адна і тая ж функцыя.

Паглядзім на прыкладзе. Хай у нас ёсць 3 кнопкі:

html<input id="button1" type="submit" value="text1">
<input id="button2" type="submit" value="text2">
<input id="button3" type="submit" value="text3">

Атрымаем спасылкі на іх у пераменныя:

javascriptlet button1 = document.querySelector('#button1');
let button2 = document.querySelector('#button2');
let button3 = document.querySelector('#button3');

Прывязам да гэтых кнопак адну і тую ж функцыю:

javascriptbutton1.addEventListener('click', func);
button2.addEventListener('click', func);
button3.addEventListener('click', func);

А ўнутры функцыі будзем выводзіць this.value:

javascriptfunction func() {
  console.log(this.value);
}

Атрымаецца, што ў нас ёсць тры кнопкі. Націсканне на кожную кнопку будзе прыводзіць да выкліку функцыі func. Пры гэтым пры кожным кліку this будзе ўтрымліваць спасылку на тую кнопку, у якой адбылася падзея.

Гэта значыць кожнае націсканне будзе выводзіць у кансоль value той кнопкі, на якой адбылося націсканне, але рабіць гэта будзе адна і тая ж функцыя func! Вось у чым перавага выкарыстання this.

Задание 1

Даны 5 абзацаў з якімі-тэ тэкстамі. Па кліку на любы абзац запішыце ў канец яго тэксту клічнік.

Задание 2

Даны 3 інпута, у якіх запісаныя якія-тэ лікі. Па страце фокусу ў любым з інпутаў узвядзіце якое стаіць у ім лік у квадрат.