⊗jsPmCxUFC 434 of 505 menu

Контекст на несвързана функция в JavaScript

Нека да видим какво ще се случи, ако в една функция посочим this, но не я свържем с никой елемент, ето така:

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

В този случай резултатът зависи от това, стриктен е нашият режим или не. Ако режимът не е стриктен, тогава в this ще се съхранява референция към window:

function func() { console.log(this); // референция към прозореца window } func();

А ако режимът е стриктен, тогава в this ще се съхранява undefined:

"use strict"; function func() { console.log(this); // undefined } func();

От казаното по-горе може да изглежда, че в стриктен режим this винаги ще бъде undefined. Далеч не е така! Ако просто изведем this извън функция, тогава в него ще има референция към window независимо от режима:

"use strict"; console.log(this); // в this има референция към window

Изводи

Във всяка функция може да напишем this, това няма да доведе до никакви грешки в JavaScript. Но какво точно ще лежи в този this не е определено до момента на извикване на функцията. Освен това при различни извиквания на функцията this може да приема различна стойност. Всичко зависи от контекста, в който функцията е била извикана.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне