javascript - apply

김동하·2020년 9월 19일
0

javascript

목록 보기
14/58

함수를 호출하는 방법은 여러가지다. 아래는 기본적인 호출 방법

function func(){

}
func()

자바스크립트에서 함수는 객체다. 객체는 속성이 있다. 그 속성에 값이 있다면 프로퍼티고 함수가 있다면 메서드가 된다. 위 예제에서 func는 Function이라는 객체의 인스턴스다. func는 부모의 메서드를 상속받는다.

function sum(arg1, arg2){
  return arg1 + arg2
}

console.log(sum.apply(null, [1,2])) // 3

apply라 내장 메소드를 호출하고 첫 번째 인자로 null, 두 번째 인자로 1,2가 담긴 배열을 넣는다.

apply를 사용하는 방법을 알아보자. (this와 연관되어 있는데 this 정리하면서 다시...)

let obj1 = {val1:1, val2:2, val3:3}
let obj2 = {v1:10, v2:50, v3:100, v4:25}

function sum(){
    let _sum = 0;
    for(let name in this){
        _sum += this[name];
    }
    return _sum;
}
console.log(sum.apply(obj1)) // 6
console.log(sum.apply(obj2)) // 185

함수 sum은 _sum라는 값을 return한다. 함수 안에는 for in문으로 _sum에 값을 더 해주는 데 this라는 객체의 값을 꺼낸다. 아직 this는 정의되지 않았다. this는 호출할 때 정의된다.

apply 메소드를 호출하는데 null대신 객체 obj1과 obj2를 인자로 주었다. 그 인자는 함수가 실행될 때 this가 된다.

==> apply는 this하면서 다시 공부!

출처 : https://www.inflearn.com/course/%EC%A7%80%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8/lecture/2543?tab=note

profile
프론트엔드 개발

0개의 댓글