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로 할당 받습니다.
'프론트 엔드 > JavaScript' 카테고리의 다른 글
개발노트 :: 자바스크립트(JavaScript) iterable 객체 (0) | 2022.03.23 |
---|---|
개발노트 :: 자바스크립트(JavaScript) 배열과 내장함수 push, unshift, shift, pop (0) | 2022.03.22 |
개발노트 :: 자바스크립트(JavaScript) 객체 복사 (0) | 2022.03.16 |
개발노트 :: 자바스크립트(JavaScript) 객체 생성 (0) | 2022.03.15 |
개발노트 :: 자바스크립트(JavaScript) 변수 (0) | 2022.03.02 |