Programming language/JavaScript
자바스크립트 - apply함수
유지광이
2020. 7. 19. 16:31
728x90
apply함수의 기본
*인자를 2개 받는다. 첫번째 인자는 해당함수안의 this를 무엇으로 치환할꺼냐를 말하는것이고 2번째 인자는 해당함수의 매개변수를 배열로 받는다.
apply함수의 사용이유
*sum함수에서 this를 사용하기위해서는 sum함수에 객체나 배열을 집어넣을 필요가있다. 그러나 위의 코드에서 보듯이 o1이라는 객체에 val1,val2,val3을 집어넣기위해 sum이라는 함수도 같이 o1의 객체의 원소에 넣어버리면 for in문은 객체의 모든 원소를 뽑아내기때문에 sum함수까지 _sum이라는값에 대입이 된것을 볼 수있다. 그렇다면 간단하게 객체나 배열을 인자로 전달하여 this를 대체하고싶을땐 무엇을 사용하면될까? 위의 코드에서 해결책을 제시해준다. apply함수를 사용하면 되는데 apply함수의 첫번째 인자로 객체 o2를 전달할경우 알아서 this가 o2로 인식이되어 정상적인 출력이 이루어 진다.
*apply와 call이라는 함수와 사용법은 거의 동일하나 2번째 인자로보낼때 apply는 배열로 담아서 보내고 , call은 하나하나 열거하여 보내는 차이점이 있다.
728x90