this
-
addEventListener에서의 this개발/Javascript 2022. 7. 19. 01:48
1. 함수 리터럴(function 키워드 사용)을 이용해 리스너를 만드는 경우 여기에서 this는 이벤트 객체의 currentTarget과 동일합니다. 즉, 예제에서 my_element가 window면 this는 window 객체를 가리키고 my_element가 document이면 this는 document 객체를 가리킵니다. my_element.addEventListener('click', function (e) { console.log(this.className) // my_element의 className 기록 console.log(e.currentTarget === this) // `true` 기록 }) 다음 예제와는 구분을 지어야 합니다. function Person() { // Person()..
-
this개발/Javascript 2022. 2. 26. 20:22
크롬 브라우저 기준으로 설명하겠습니다. 자바스크립트에서의 this는 C++과 Java와는 조금 다릅니다. 이 둘 언어에서는 this 해당 변수나 함수를 소유하고 있는 클래스의 인스턴스를 의미합니다. 이 사실은 불변합니다. 하지만 자바스크립트에서는 함수가 일급 객체이기 때문에 상황에 따라서 this가 가리키는 객체가 달라질 수 있습니다. 여기서 말하는 상황이란 함수가 속하는 객체의 변화입니다. 해당 함수를 호출하는 경우와 생성자 함수로 활용해서 객체를 만들 때로 나뉩니다. 다음 코드를 보겠습니다. function Test() { this.name = 'kim'; console.log(this); } Test(); 무엇이 출력될까요? Test와 관련된 어떤 것? 다음이 결과입니다. 정답은 window 객체입..
-
[const member function] 이면에 있는 조금 더 복잡한 것개발/C·C++ 2021. 4. 22. 22:21
클래스에 정의한 함수를 멤버 함수라고 합니다. 변수는 멤버 변수라고 하지요. 클래스로 객체를 만들면 객체를 위한 메모리가 할당이 될 겁니다. 여러 객체를 만들면 각 객체에 메모리가 할당됩니다. 함수도 객체의 수만큼 만들어질까요? 변수는 객체마다 새로 만들어져야 하는 것이 맞지만, 함수는 A class로 만든 a 객체의 hi() 함수나, A class로 만든 b 객체의 hi() 함수가 다르지 않습니다. 다음은 객체를 두 개를 만들어서 각자 함수를 호출한 뒤 중단점을 걸어서 주소를 확인한 결과입니다. 변수는 객체마다 다른 데이터를 담아야 하겠지만 함수는 기능 단위이기 때문에 객체마다 새로 만들 필요가 없습니다. 멤버 함수 안에 멤버 변수가 있을 경우에 접근하는 방법이 있어야 할 것입니다. 개발자는 자연스럽게..