⊗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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부