카테고리 없음
[Javascript] this
321
2021. 5. 25. 15:04
리액트 하다가 헷갈려서 정리해 본다.
var someone = {
name:'jy',
whoAmI : function(){
console.log(this);
}
};
someone.whoAmI();
콘솔에 jy
var someone = {
name:'jy',
whoAmI : function(){
console.log(this);
}
};
someone.whoAmI();
var myWhoAmI = someone.whoAmI;
myWhoAmI();
결괏값 : 1행 jy 2행 window 어쩌고
1 - somone.whoAmI() 실행 시에는 someone이 있고
2 - myWhoAmI() 실행 시에는 실행할 대상이 없어서 윈도우가 실행한다.
var someone = {
name:'jy',
whoAmI : function(){
console.log(this);
}
};
someone.whoAmI();
var myWhoAmI = someone.whoAmI;
myWhoAmI();
var btn = document.getElementById('btn');
//1
btn.addEventListener('click', someone.whoAmI);
//2
btn.addEventListener('click', someone.MyWhoAmI);
(btn이라는 버튼이 다른 곳에 있다고 한다고 가정한다)
1의 (btn이후)의 클릭 결과는 콘솔에 <button>~~~</button>이 나온다
2도 같다.
this는 호출한 놈...(누가 실행했느냐?)
var someone = {
name:'jy',
whoAmI : function(){
console.log(this);
}
};
someone.whoAmI();
var myWhoAmI = someone.whoAmI;
myWhoAmI();
//bind
var bindedWhoAmI = myWhoAmI.bind(someone);
//1
bindedWhoAmI();
var btn = document.getElementById('btn');
//2
btn.addEventListener('click', someone.bindedWhoAmI);
1,2에서 클릭 실행시 콘솔에 결과는 jy
자바스크립트에서는 this는 호출할 때 호출한 놈으로 결정된다.
출처
https://www.youtube.com/watch?v=PAr92molMHU