본문 바로가기
Javascript

Javascript - this 키워드

by DGK 2021. 9. 27.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

this 키워드

 

  • this 키워드 이해하기
this는 사용하는 상황에 따라 의미가 달라진다는 것에 유의해야 한다.


<첫 번째 사용 예시>
console.log(this);

// 결과 : console.log(window);와 동일한 결과 값을 갖는다.
//이때의 this는 글로벌 오브젝트인 window와 동일한 의미로 사용된다.



function myFunction( ){

	console.log(this);

 }

myFunction();                  

// 결과 : console.log(this);를 함수 안에서 선언하든, 밖에서 선언하든 간에
//모두 console.log(window);과 동일한 결과 값을 갖는다.



<두 번째 사용 예시>

var person = {
	firstName: "John",
	lastName: "Kim",
	fullName: function( ){                               
	return this.firstName + " " + this.lastName;     
 }
};

console.log(person.fullName());

// 결과 : John Kim

//함수를 오브젝트안에 넣을 경우, 오브젝트의 키 값은 함수이 되고
//오브젝트의 벨류 값은 함수의 구조가 된다. 

//여기서 this는 바로 자신이 속한 오브젝트(person) 자체를 의미하며, 
//this.firstName는 person의 키 값이 firstName인 벨류 값(John)을 의미한다.



<세 번째 사용 예시>

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <button type="button" onclick="this.style.backgroundColor='red';">클릭</button>   
  <!-- 여기서 this는 자신이 속한 html의 element 전체를 의미함 -->
    
    
  <button type="button" onclick="callFunc(this);">클릭2</button>
  <!-- 여기서 this는 자신이 속한 html의 element 전체를 의미함 -->
    
    
  <select onchange="changeSelect(this);">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
  <!-- 여기서 this는 자신이 속한 html의 element 전체를 의미함 -->


  <script> 
  function callFunc(obj){
    
  console.log(obj);
    
  }


// 결과 : <button type="button" onclick="callFunc(this);">클릭2</button> 

  //callFunc(this);에서 this는 callFunc( ) 함수의 전달인자이며,
  //자신이 속한 html의 element 전체를 의미한다.
        


  function changeSelect(obj){
    
  console.log(obj.value);
    
  }

  // 결과 : 선택박스에서 선택 값을 바꿀 때마다 콘솔창에 해당 결과가 나타난다.
    
  //select 태그 안의 changeSelect(this);에서 this는
  //<select onchange="changeSelect(this);"> 자체를 의미한다.
    
  //즉, 함수실행 시 changeSelect( ) 함수의 전달인자인 this가 파라미터인 obj로
  //들어가고 그 결과 콘솔창에는 select 태그의 선택된 value값이 결과 값으로 출력되는 것
  //이다.
  </script>
</body>
</html>

 

'Javascript' 카테고리의 다른 글

Javascript - Default Function Parameter  (0) 2021.09.27
Javascript - Scope  (0) 2021.09.27
Javascript - 크롬 개발자 도구  (0) 2021.09.22
Javascript - Window 객체  (0) 2021.09.22
Javascript - JSON 객체  (0) 2021.09.22

댓글