Врзување на контекст преку методот call во JavaScript
Значи, разгледавме како всушност функционира
this. Ајде сега да ги разгледаме методите
кои дозволуваат присилно да се одреди,
во кој контекст се повикува функцијата (односно
присилно да се каже, на што е еднаков this).
Првиот метод што ќе го разгледаме,
се вика call. Ајде да ја погледнеме
неговата работа на пример. Нека имаме input:
<input id="elem" value="text">
Ајде да ја добиеме референцата на овој input и да ја запишеме
во променливата elem:
let elem = document.querySelector('#elem');
Ајде сега да направиме функција func,
во која ќе го испечатиме this.value:
function func() {
console.log(this.value);
}
Засега нашата функција не знае на што се однесува
this. Ете, ако ја поврзевме
преку addEventListener, тогаш да.
Но, ние нема да го сториме тоа. Наместо тоа, едноставно
ќе ја повикаме нашата функција, велејќи и дека this
треба да биде еднаков на elem.
Ова се прави вака: func.call(elem).
Овој код е еквивалентен на едноставно повикување на функцијата
func вака: func(), само
со условот дека this е еднаков на elem.
Значи, синтаксата на методот call е: функција.call(објект).
Ајде да собереме
сè заедно:
let elem = document.querySelector('#elem');
function func() {
console.log(this.value); // ќе го испечати value на input-от
}
func.call(elem);
Дадена е функција:
function func() {
console.log(this.value);
}
Дадени се три input-и:
<input id="elem1" value="text1">
<input id="elem2" value="text2">
<input id="elem3" value="text3">
Со помош на методот call и функцијата func
испечатете го на екран value на секој од input-ите.