Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

몽탁이의 개발일기

apply 메소드 본문

Javascript 정리

apply 메소드

몽탁 2020. 6. 30. 12:52

apply 메소드는 함수를 정의하게 되면 자동으로 만들어지는 내장 객체입니다.

이 메소드는 함수를 호출할 때 대신 사용하게 됩니다.

 

o1 = {val1:1, val2:2, val3:3}
o2 = {v1:10, v2:50, v3:100, v4:25}

 

function sum(){

    var _sum=0;

    for(name in this){

         _sum += this[name];

    }

    return _sum;

}

 

alert(sum.apply(o1)); // 출력값 6

alert(sum.apply(o2)); // 출력값 185

 

 위 예제는 apply 메소드를 사용하여 sum을 호출합니다. 이때 넘기는 o1이라는 객체는 this를 가리키게 되고 

o1에 대한 값들이 더해져 반환됩니다.

 

 그 밑에 다시 o2의 객체를 인자로 넘기게 되는데 결과는 185가 나오게 됩니다. 그 이유는 함수 안의 this가 apply로 함수를 호출하는 시점에서의 객체를 가리키게 되어서입니다.

 

apply메소드를 사용하는 이유는

 

o1 = {val1:1, val2:2, val3:3, sum:sum} 
o2 = {v1:10, v2:50, v3:100, v4:25. sum:sum}

 

function sum(){

    var _sum=0;

    for(name in this){

         if(typeof this[name] !== 'function')

         _sum += this[name];

    }

    return _sum;

}

 

alert(o1.sum()); // 출력값 6

alert(o2.sum()); // 출력값 185

 

 위 예제는 앞서 apply를 사용한 예제와 같은 결과가 나오게 됩니다. 여기서 apply를 사용하지 않게 되면 객체 안에

sum이라는 함수를 따로 정의해줘야 되고 해당 함수는 계산에 포함되지 않게 예외처리를 해줘야 되는 번거로움이

생기기 때문에 사용하게 됩니다.

'Javascript 정리' 카테고리의 다른 글

전역객체  (0) 2020.06.30
생성자  (0) 2020.06.30
arguments 객체  (0) 2020.06.30
클로저 사용시 주의사항  (0) 2020.06.29
클로저(Closure)  (0) 2020.06.29