[JS] 함수의 호출 apply

객체

객체는 속성들을 가지고 있다.


function func(){
}
func();

함수는 일종의 객체이다.
위 코드에서 func라는 함수는 객체이기 때문에 메소드를 가지고 있다. 그 메소드는 내장된 객체이다.
func.apply 또는 func.call 처럼 applycall 메소드에 접근을 할 수 있다.
apply 대해 알아보자.

apply

function sum(arg1, arg2){
    return arg1 + arg1;
}
sum(1,2); // 3

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

위 코드에서 sum을 호출한 값은 모두 ‘3’으로 똑같다.


o1 = {val1:1, val2:2, val3:3}
o2 = {v1:10, v2:50, v3:100, v4:25}
// o1과 o2는 객체이다.

function sum(){
    var _sum = 0;
    for(name in this){ // this는 o1, o2의 객체들이 들어온다.
        _sum += this[name];
    }
    return _sum;
}
alert(sum.apply(o1)) // 6
alert(sum.apply(o2)) // 185