[코드잇 스프린트 풀스택 4기] 자바스크립트의 this

2024. 11. 25. 09:19·개발이야기/웹개발
반응형
  1. this
    1. this는 실행 컨텍스트에 따라 그 값이 결정되며, 현재 실행 중인 함수 또는 메서드의 "소유자"를 가리킵니다.
    2. 전역 컨텍스트에서의 this
      1. 전역 객체를 가리킴. 브라우저에서는 window
      console.log(this); // 브라우저에서는 window 객체를 출력
      
    3. 함수 내에서의 this
      1. 일반 함수에서는 전역 객체
      2. 엄격 모드에서는 undefined
      function regularFunction() {
          console.log(this); // window 또는 global 객체
      }
      
      function strictFunction() {
          'use strict';
          console.log(this); // undefined
      }
      
      regularFunction();
      strictFunction();
      
    4. 객체의 메서드로 호출될때는 해당 메서드를 호출한 객체에 바인딩됨
      1. 코드
      const obj = {
          name: 'JavaScript',
          getName: function() {
              console.log(this.name);
          }
      };
      
      obj.getName(); // 'JavaScript'
      
    5. class의 생성자 함수에서는 새로 생성되는 객체를 가리킴
      1. 코드
      function Person(name) {
          this.name = name;
      }
      
      const person = new Person('John');
      console.log(person.name); // 'John'
      
    6. 이벤트 핸들러에서의 this는 이벤트를 받는(이벤트가 실행되는) 요소를 가리킴
      1. 코드
      document.getElementById('myButton').addEventListener('click', function() {
          console.log(this); // 클릭된 버튼 요소
      });
      
    7. 화살표 함수에서의 this는 일반 함수와는 다르게 this를 자체적으로 바인딩하지 않고, 함수 생성 시점의 실행 context를 상속
      1. 코드
      const obj = {
          name: 'JavaScript',
          regularFunction: function() {
              setTimeout(function() {
                  console.log(this.name); // undefined (전역 객체의 name 속성)
              }, 100);
          },
          arrowFunction: function() {
              setTimeout(() => {
                  console.log(this.name); // 'JavaScript'
              }, 100);
          }
      };
      
      obj.regularFunction();
      obj.arrowFunction();
      
반응형

'개발이야기 > 웹개발' 카테고리의 다른 글

[코드잇 스프린트 풀스택 4기] React Virtual DOM  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 렉시컬 스코프(Lexical Scope)  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 자바스크립트의 var, let, const  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 브라우저의 동작 원리  (0) 2024.11.25
[코드잇 스프린트 풀스택 4기] 시멘틱 태그란 무엇이며 어떤 장점이 있는가?  (0) 2024.10.27
'개발이야기/웹개발' 카테고리의 다른 글
  • [코드잇 스프린트 풀스택 4기] React Virtual DOM
  • [코드잇 스프린트 풀스택 4기] 렉시컬 스코프(Lexical Scope)
  • [코드잇 스프린트 풀스택 4기] 자바스크립트의 var, let, const
  • [코드잇 스프린트 풀스택 4기] 브라우저의 동작 원리
스탠다드
스탠다드
생각이 아니라 직접 경험한 것들이 나의 말과 글이 될 수 있기를.
  • 스탠다드
    지극히 상식적인 삶
    스탠다드
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • 육아 관련 이야기 (0)
      • 마케팅/광고 이야기 (1)
      • 스마트 따라잡기 (1)
      • PC.모바일 관련 팁 (5)
      • 스탠다드한 일상 (1)
      • 삶에 대한 고민 (3)
      • 개발이야기 (32)
        • Flutter공부 (1)
        • 웹개발 (31)
  • 블로그 메뉴

    • BLOG
    • TAG
    • GUESTBOOK
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    React
    한결같은 사람
    스프린트
    아이폰6S
    웹클리핑
    web clipper
    태블릿pc입력판
    다운로드대기중
    NextJS
    Firebase
    JWT
    시멘틱태그
    한영전환
    풀스택
    웹클리퍼
    gradleexception
    액정먹통
    전원강제재부팅
    스마트키보드
    리액트
    web clipping
    유저인증
    눈치보게 하는 사람
    공익신고
    tablet pc 입력판
    FLUTTER
    매직키보드
    build.gradle
    전원강제종료
    코드잇
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
스탠다드
[코드잇 스프린트 풀스택 4기] 자바스크립트의 this
상단으로

티스토리툴바