This 란?
함수를 호출할 때 생기는 바라보고 있는 객체를 말한다.
(가장이해하기 쉬운방법이 이게 아닌가...)
this 는 총 4가지의 각각 다른 뜻? 바라보고있는 곳이 있다.
window
그냥 this 를 사용하거나 함수 안에서 this를 사용하면 window 를 가르킨다. window 는 모든 전역변수, 함수, DOM을 보관, 관리하는 전역객체이다.
Object 내에 함수 안에서 this는 자신의 주인을 뜻한다.
Object 자료형 안에 함수를 만들어서 그 안에서 this 를 출력하면 그 함수의 주인인 Object 가 출력이 된다.
Object 안에 함수는 메소드라고 한다.
키 값이 주인님이 되지 않는다.
Constructor 안에서 사용하게 되면 새로 생성될 Object 를 말한다.
function func1() {
this.name = 'kim'
}
let obj = new func1();
console.log(obj) // {name: 'kim'} 출력
document.getElementById('button').addEventListener('click', (e) => {
console.log(this) // button 출력
console.log(e.currentTarget) //button 출력
})
apply()
apply 함수는 이 함수를 어떠한 오브젝트에 적용해서 실행해달라는 뜻이다.
사용방법은 : 실행함수.apply(적용할곳)
call()
apply 함수랑 똑같다. 하지만 apply 함수는 array 를 한꺼번에 집어넣을 수 있고
call 함수는 일반함수처럼 파라미터를 집어넣을 수 있다.
이 방법에만 차이가 있다. 실행내용은 똑같다.