[TIL04-1] Javascript 'apply, call 에서의 this'
apply
apply
는 브라우저가 자바스크립트에 제공하는 메소드로, 함수를 호출하는 특별한 방법이다.
this
와 함께 유용하게 쓰이며, 여기에서 쓰이는 this
는 함수와 객체를 연결하는 역할을 한다.
var daseul = { name: 'Daseul' }; var bada = { name: 'Bada' }; funtion greet(){ return "Hello, I'm" ${this.name}; } greet(); //'Hello, I'm undefined' - this는 어디에도 묶이지 않음 greet.apply(daseul); //'Hello, I'm Daseul' - this는 daseul greet.apply(bada); //'Hellom I'm Bada' - this는 bada
this
의 값은 apply
뒤에 오는 첫 번째 인자값이 된다.
따라서 위의 greet
함수는 어떠한 객체와도 연결되지 않았지만 this
와 apply
를 사용함으로서
해당 함수가 주어진 객체의 메서드인 것처럼 사용할 수 있다.
apply
의 첫 번째 매개변수는 this
로 사용할 값이고 , 그 뒤에 두 번째 인자가 온다면 그 인자는 호출하는 함수로 전달된다.
apply
의 두 번째 인자는 배열의 형태로 전달된다.
만약 apply
의 첫 번째 인자로 null
을 전달하면 apply
가 실행될 함수 인스턴스는 전역객체 (브라우저에서는 window
)를 맥락으로 실행되게 된다.
call
call
은 apply
와 인자를 처리하는 방법을 제외하고 완전히 같다.
call
은 일반적인 함수와 마찬가지로 두 번째 인자를 직접 받는다.(apply
는 배열 형태)
greet.apply(daseul, ["hi"]); //apply 메소드 사용시 greet.call(daseul,"hi"); //call 메소드 사용시
참고
https://ibrahimovic.tistory.com/29
생활코딩
Author And Source
이 문제에 관하여([TIL04-1] Javascript 'apply, call 에서의 this'), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@_seeul/TIL04-1-Javascript-apply-call-에서의-this저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)