console.log(this); //Window...
아무데서나 일반(전역)함수로 this
를 호출하면 window
를 가지고 옴
Q.
window
가 무엇인가요?
A.window
는 모든 전역변수, 함수, DOM을 보고나하고 관리하는 전역 객체입니다
그러나 strict mode일 때 함수 안에서 쓰면 this
는 undefined
가 나옴
var object = {
data : 'kim',
함수 : function(){
console.log(this);
}
}
object.함수(); //{data: 'Kim', 함수: ƒ}
오브젝트 내 함수 안에서 쓰면
그 함수를 가지고 있는 오브젝트를 뜻함
🎈문제1
var 오브젝트 = { data: { 함수: function(){ console.log(this); } }, } 오브젝트.data.함수();
정답1
{함수: f};
Arrow Function
특징this
값을 함수 밖에 있던 것을 그대로 가져와서 씀
var 오브젝트 = {
data: {
함수: ()=> {
console.log(this);
}
},
}
오브젝트.data.함수(); //Window {window: Window, self: Window, document: document, name: '', location: Location, …}
함수 밖에 있던 window
값이 console
로 출력됨
(상위요소가 가지고 있던 this
값을 가지고 오는 것)
메소드 안에 함수를 넣고 싶을 때
var 오브젝트 = {
data: {
함수(){
//함수: function(){..} 에서 ': function: 생략
console.log(this);
}
},
}
오브젝트.data.함수();
✨
결국 this
는 나를 담고 있는 오브젝트(상위 주인공)
를 담고 있는 것임