ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript 함수의 호출
    MOOC/생활코딩 2016. 4. 23. 17:21
    반응형

    2016.04.23.


    - 함수의 호출


    함수를 호출하는 가장 기본적인 방법


    1
    2
    3
    function func(){
    }
    func();
    cs



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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
    cs




    두개의 객체를 만들어 각자 3개와 4개의 속성을 가지고 있는 o1, o2로 정의하였다. 다음으로는 함수 sum을 생성하는데 객체의 속성을 열거 할 떄 사용하는 for in 문을 사용하여 객체 자신(this)의 값을 열거한 후에 각 속성의값을 지역변수 _sum에 저장한 후 이를 리턴한다.


    Function의 객체 메소드 apply의 첫번째 인자는 함수가 실행될 맥락으로 sum.apply(o1)는 함수 sum을 객체 01의 메소드로 만들고 sum을 호출 한 후 sum을 다시 삭제한다.,


    sum의 o1소속의 메소드가 된다는것은 함수 sum에서 this의 값이 전역객체가 아니라 o1가 된다는 의미이다. 일반적으로 객제지향 언어에서는 하나의 객체에 소속된 함수는 그 객체의 소유물이되지만 자바스크립트에서 함수는 독립적인 개체로 존재하고 apply나 call 메소드를 통해서 다른 객체의 소유물인것처럼 실행 가능하다.




    만약 apply의 첫번째 인자로 null을 전달하면 apply가 실행된 함수 인스턴스는 전역객체(브라우저에서는 window)를 맥락으로 실행되게 된다.

    반응형

    'MOOC > 생활코딩' 카테고리의 다른 글

    JavaScript 전역객체  (0) 2016.04.23
    JavaScript 생성자와 new  (0) 2016.04.23
    JavaScript Arguments  (0) 2016.04.22
    JavaScript 클로저  (0) 2016.04.21
    JavaScript 값으로서의 함수와 콜백  (0) 2016.04.21

    댓글

Designed by Tistory.