⊗jsOpAdMCL 43 of 60 menu

JavaScript 객체 지향 프로그래밍에서 메서드 코드의 컨텍스트 손실

클래스 메서드의 원본 코드를 사용할 때 컨텍스트가 손실될 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }

이 클래스의 객체를 생성해 봅시다:

let user = new User('john');

메서드 코드를 변수에 저장해 봅시다:

let func = user.getName;

메서드를 변수에 저장하는 순간 컨텍스트가 손실되었습니다. 이제 메서드 코드 내부의 this는 더 이상 클래스 객체를 가리키지 않습니다. 함수를 호출하여 확인해 봅시다:

console.log(func()); // 오류

이 문제를 해결하기 위해 함수에 컨텍스트를 바인딩할 수 있습니다, 예를 들어 bind를 통해:

func = func.bind(user); console.log(func()); // 작동
한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부