⊗jsPmCxUFC 434 of 505 menu

Sidottomattoman funktion konteksti JavaScriptissä

Katsotaan, mitä tapahtuu, jos funktiossa määritetään this, mutta sitä ei sidota mihinkään elementtiin, näin:

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

Tässä tapauksessa tulos riippuu siitä, onko käytössämme tiukka tila vai ei. Jos tila ei ole tiukka, this sisältää viittauksen window-objektiin:

function func() { console.log(this); // viittaus ikkunaan window } func();

Jos tila on tiukka, niin this sisältää arvon undefined:

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

Yllä olevasta voi vaikuttaa, että tiukassa tilassa this on aina undefined. Ei niin! Jos yksinkertaisesti tulostaa this funktion ulkopuolella, niin se sisältää viittauksen window-objektiin riippumatta tilasta:

"use strict"; console.log(this); // this sisältää viittauksen windowiin

Yhteenveto

Missä tahansa funktiossa voi kirjoittaa this, se ei johda JavaScriptin virheisiin. Mutta mitä tarkalleen this sisältää ei ole määritelty ennen kuin funktiota kutsutaan. Lisäksi eri funktiokutsuissa this voi saada eri arvon. Kaikki riippuu kontekstista, jossa funktio kutsuttiin.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää