function 함수명 () {
실행코드내용
}
var 함수명 = function () { 실행코드내용 }
EventListner/object 내 콜백함수로 Arrow function 사용 시
화살표함수 내에서 this값 재정의X, 상위 객체의 this값 가져온다.
(this = window 객체가 된다)
📌 Callback 함수로 일반 함수 문법 사용 시
document.getElementById('btn').addEventListener('click', function (e) {
console.log(this)
})
👀 결과 : this = e.currentTarget 출력 (이벤트 핸들러가 부착된 곳)
📌 Callback 함수로 Arrow Function 사용 시 1
document.getElementById('btn').addEventListener('click', (e) => {
console.log(this)
})
👀 결과 : this = window 객체 출력
📌 Callback 함수로 Arrow Function 사용 시 2
document.getElementById('버튼').addEventListener('click', function(){
console.log(this)
setTimeout( ()=>{ console.log(this.innerHTML) }, 1000 )
})
👀 위 코드에서는 상위 요소의 this값을 받고 싶으므로 Arrow function 문법을 사용하였다.
3행에서 일반 function 문법 사용 시 this가 undefined으로 뜬다
(function(){ console.log(this) } 에서 this에 해당하는, function 메소드를 가지고 있는 객체는 window 객체이므로)
this
var obj = {
name : 'kim',
sayHi : ()=>{ console.log(this)
}
👀 결과 : 콘솔에 window객체가 출력된다.
eventListner사용 시 this
$(this)
console.log($(this).val())