⊗jsPmDmThsA 357 of 505 menu

Предност this у JavaScript-у

Из до сада реченог посебна предност this још није очигледна. На крај крајева, унутар функције-обрађивача ће наш елемент ионако бити доступан – на крај крајева, променљива elem биће глобална за нашу функцију func:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // овде је доступна променљива elem са нашим елементом }

И, није тешко закључити да су садржај this и садржај променљиве elem у нашем случају једнаки:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // исписаће true }

У чему је онда посебна предност this? Она се испољава када имамо више елемената, а на сваки од њих је везана иста функција.

Погледајмо на примеру. Нека имамо 3 дугмета:

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

Преузмимо референце на њих у променљиве:

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

Вежимо на та дугмета исту функцију:

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

А унутар функције ћемо исписивати this.value:

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

Испоставља се да имамо три дугмета. Притисак на свако дугме довешће до позива функције func. При томе при сваком клику this ће садржати референцу на оно дугме у ком се десио догађај.

То јест, сваки притисак ће у конзолу исписивати value оног дугмета на ком се десио притисак, али ће то радити иста функција func! Ето у чему је предност коришћења this.

Дато је 5 пасуса са неким текстовима. При клику на било који пасус запишите на крај његовог текста узвичник.

Дата су 3 поља за унос, у којима су уписани неки бројеви. При губитку фокуса у било ком од поља подигните број који у њему стоји на квадрат.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј