⊗jsPmCxCM 440 of 505 menu

Свързване на контекст чрез метода 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 полетата.

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