1. 일반 함수로 this를 호출한 경우

	function getName() {
	  console.log(this);
	}
	getName();	// object window

 

2. 객체 내부에서의 this를 호출한 경우

	let info1 = { 
		name: "책상",
		getName() {
			console.log(this);		// object object (info1 객체를 가르킴)
			console.log(this.name);	// 책상
		}
	};
	info1.getName();

 

3. this일반 함수를 선언 후 객체 프로퍼티에 적용시킨 경우

// 함수 생성
function getName() {
  console.log( this.name );
}

// 객체 생성
let info1 = { name: "책상" };
let info2 = { name: "전화기" };

// 객체에 함수 프로퍼티 넣음
info1.getName = getName;
info2.getName = getName;

// 프로퍼티 호출 
info1.getName();	// 책상
info2.getName();	// 전화기

 

javascript의 this는 동적(런타임)으로 값이 결정된다. 

this 호출 시 호출시 앞에 객체를 보고 해당 객체가 this로 할당 받습니다. 

+ Recent posts