<4. 객체 리터럴과 this>
* 자바스크립트 객체의 활용
자바스크립트에서는 객체 리터럴이라는 표현식을 이용해 객체를 쉽게 만들 수 있다.
. notation 표기법은 자바스트립트에서 객체를 뜻한다 (객체.메서드)
var healthObj = {
name : "달리기",
lastTime : "PM10:12",
showHealth : function() {
console.log(this.name + "님, 오늘은 " + this.lastTime + "에 운동을 하셨네요");
}
}
healthObj.showHealth();
이와 같은 식으로 비슷한 기능을 묶어서 객체 리터럴로 코드를 만들고, 각 메서드를 실행해기
여기에서 this는 healthObj를 가르킨다. (healthObj로 써도 되지만 this 키워드를 쓰는 것을 추천, 좀 더 유연해진다.)
this는 실행 타이밍에서 결정되는 것
healthObj 안에서 쓰이는 것들에 다 접근할 수 있다는 뜻
자바스크립트의 객체는 하나의 객체를 반환하게 되어있으므로 싱글턴이다.
* this
객체 안에서의 this는 그 객체 자신을 가리킨다.
const obj = {
getName() {
return this.name;
},
setName(name) {
this.name = name;
}
}
obj.setName("crong");
const result = obj.getName();
- this 좀 더 알아보기
JavaScript에는 전역스크립트나 함수가 실행될 때 실행문맥(Execution context)이 생성된다.
(참고로 실제 실행은 브라우저내에 stack 이라는 메모리 공간에 올라가서 실행 됨)
모든 context에는 참조하고 있는 객체(thisBinding이라 함)가 존재하는데, 현재 context가 참조하고 있는 객체를 알기 위해서는 this를 사용할 수 있다.
함수가 실행될때 함수에서 가리키는 this 키워드를 출력해보면 context가 참조하고 있는 객체를 알 수 있다.
function get() {
return this;
}
get(); //window. 함수가 실행될때의 컨텍스트는 window를 참조한다.
new get(); //object. new키워드를 쓰면 새로운 object context가 생성된다.
'BoostCource > Front-end' 카테고리의 다른 글
[FE] 04. JavaScript 라이브러리 (0) | 2018.09.27 |
---|---|
[FE] 04. bind 메소드로 this 제어하기 (0) | 2018.08.05 |
[FE] 04. 배열의 함수형 메소드 (0) | 2018.08.05 |
[FE] 03. Tab UI (0) | 2018.07.28 |
[FE] 03. HTML templating (0) | 2018.07.28 |