this를 함수와 Object에서 사용하면

홍싸리·2023년 8월 27일
0

애플코딩_js심화

목록 보기
1/2
console.log(this); //Window...

아무데서나 일반(전역)함수로 this를 호출하면 window를 가지고 옴

Q. window가 무엇인가요?
A. window는 모든 전역변수, 함수, DOM을 보고나하고 관리하는 전역 객체입니다

그러나 strict mode일 때 함수 안에서 쓰면 thisundefined가 나옴


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나를 담고 있는 오브젝트(상위 주인공)를 담고 있는 것임

profile
그럴싸한건 다 따라해보는 프론트엔드 개발자 준비중인 6년차 퍼블리셔

0개의 댓글